[Spring] 그냥되는 건 없다 1 - Spring-Boot AutoConfiguration
😏 서론
spring-boot 2.6.6 기준
스프링부트에서 빈 기본설정파일들을 intellij로 아무리 눌러도 불러오는 곳을 쉽게 찾지 못한 김에 정리하게 된 기본설정하는 곳.
🧐 본론
133개의 설정파일들이 정의되어 있다.
그런데 AopAutoConfiguration, BatchAutoConfiguration과 같이 기본적으로 의존성이 추가되어 있지 않는 녀석들이 있다.
@ConditionalOnProperty
- property가 참일 경우 컨테이너 등록
@ConditionalOnClass
- 해당 클래스가 경로에 존재할 경우 컨테이너 등록
@ConditionalOnMissingClass
- 해당 클래스가 존재하지 않을 경우 컨테이너 등록
이처럼 스프링부트와 호환된다고 명시된 녀석들의 의존성을 추가하면 자동으로 설정되도록 미리 구현해 놓았다.
그 외에도 더 다양한 어노테이션이 존재하고, 궁금하다면 아래 참조 링크를 확인하길 바란다.
기본 의존성으로 filter를 거친 후 살아남은 Configuration은 24개정도
😅 결론
스프링은 사용하는 사람들이 참 쉽게 쓸 수 있도록 잘 만들어뒀다.
하지만, 그만큼 내부는 복잡하다.. 한 번 보려고 하면 쉽게 타고타고 보기 어렵다.
앞으로 하나씩 살펴보자.
언제나 피드백은 환영입니다~!
참조
스프링부트 자동설정 조건 어노테이션
스프링부트의 자동설정시 사용 가능한 일부 조건 어노테이션에 대한 의미 @ConditionalOnBean: 특정 BEAN CLASS나 이름이 Bean Factory에 포함되면 진행 @ConditionalOnClass: 특정 CLASS가 경로에 있으면 진행 @Condi
pipe0502.tistory.com
https://goodgid.github.io/Spring-Boot-EnableAutoConfiguration/
@EnableAutoConfiguration 어노테이션을 선언하면 내부적으로 어떤 일이 일어날까?
Index
goodgid.github.io