JVM/Spring

[Spring] 그냥되는 건 없다 1 - Spring-Boot AutoConfiguration

Hyo Kim 2023. 1. 9. 19:00
728x90
반응형

😏 서론

spring-boot 2.6.6 기준

 

스프링부트에서 빈 기본설정파일들을 intellij로 아무리 눌러도 불러오는 곳을 쉽게 찾지 못한 김에 정리하게 된 기본설정하는 곳.


🧐 본론

mainApplication
SpringBootApplication
AutoConfigurationImportSelector
AutoConfigurationImportSelector - getCandidateConfigurations
spring.factories

133개의 설정파일들이 정의되어 있다.

 

그런데 AopAutoConfiguration, BatchAutoConfiguration과 같이 기본적으로 의존성이 추가되어 있지 않는 녀석들이 있다.

AopAutoConfiguration

 

@ConditionalOnProperty

- property가 참일 경우 컨테이너 등록

metadata.json

@ConditionalOnClass

- 해당 클래스가 경로에 존재할 경우 컨테이너 등록

 

@ConditionalOnMissingClass

- 해당 클래스가 존재하지 않을 경우 컨테이너 등록

 

이처럼 스프링부트와 호환된다고 명시된 녀석들의 의존성을 추가하면 자동으로 설정되도록 미리 구현해 놓았다.

그 외에도 더 다양한 어노테이션이 존재하고, 궁금하다면 아래 참조 링크를 확인하길 바란다.

 

configurations

기본 의존성으로 filter를 거친 후 살아남은 Configuration은 24개정도


😅 결론

스프링은 사용하는 사람들이 참 쉽게 쓸 수 있도록 잘 만들어뒀다.

하지만, 그만큼 내부는 복잡하다.. 한 번 보려고 하면 쉽게 타고타고 보기 어렵다.

앞으로 하나씩 살펴보자.

 

언제나 피드백은 환영입니다~!

 

참조

728x90
반응형