😏 서론
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
'JVM > Spring' 카테고리의 다른 글
[Toby Spring Reactive Programming] Reactive Streams 시작 (1) (0) | 2023.10.13 |
---|---|
[Spring] h2 설정 (0) | 2023.01.29 |
[Spring] CaffeineCache key는 Object (0) | 2022.12.30 |
[Spring] Spring의 ObjectMapper 쉽게 Custom 만들기 (0) | 2022.12.26 |
Spring JacksonObjectMapper는 어떻게 jackson-module-kotlin을 등록하나 (0) | 2022.11.27 |