아카이브

[스프링 부트 개념과 활용] 자동 설정 @EnableAutoConfiguration 본문

Spring/스프링 부트 개념과 활용

[스프링 부트 개념과 활용] 자동 설정 @EnableAutoConfiguration

주멘이 2021. 1. 3. 13:35

@SpringBootApplication는 사실 @SpringBootConfiguration + @ComponentScan + @EnableAutoConfiguration 3가지가 합쳐진 것이다.

빈은 2단계 과정을 거쳐 등록된다

  • 먼저 1단계로 @ComponentScan (패키지 이하 @Component를 스캔하여 Bean으로 등록)
    • (@Configuration, @Repository, @Service, @Controller, @RestController 등등)
  • 다음2단계로 @EnableAutoConfiguration 으로 spring boot의 meta파일(spring.factories)을 통해, 미리 정의되어 있는 @Configuration 들을 Bean으로 등록한다
    • spring.factories ? spring-boot-autoconfigure의 META-INF 안에 있다

여러가지 autoConfiguration들이 정의되어 있는데, 이와 함께 @ConditionalOnXxxYyyZzz 등의 Bean condition 조건에 따라 Bean 등록을 제어할 수 있다

즉, @EnableAutoConfiguration은 Spring Boot의 자동설정을 지원하는 핵심이다