Spring Boot - @SpringBootApplication 알아보기
@SpringBootApplication@SpringBootApplication 은 Spring Boot 애플리케이션의 진입점으로 사용되는 어노테이션으로, Spring Boot 설정 및 실행에 필요한 여러 기능을 한 곳에서 제공합니다. @SpringBootApplication 은 크게 3가지 어노테이션으로 이루어져 있습니다. @ComponentScan에서 1차적으로 @Bean을 읽어들인 후 @EnableAutoConfiguration에서 2차적으로 @Bean을 읽어들인다. @SpringBootConfiguration @SpringBootConfiguration은 기존의 Configuration과 비슷하다. @ComponentScan 기본 값은 @SpringBootApplication 가 작성된 패키지와 하위 패키지의 모든 @Component 와 @Bean 을 찾아 Spring Bean 으로 등록한다. @EnableAutoConfiguration Spring Boot의 핵심 기능인 자동 설정을 활성화합니다. 라이브러리와 설정을 기반으로 필요한 Bean 들을 설정합니다. 즉 springboot는 Bean을 두번 등록하는 작업을 거친다. @ComponentScan@ComponentScan은 Application.class에 있다. 위 그림에서는 a와 b 패키지의 경우는 ComponentScan의 대상이 되나 maple 패키지의 경우 ComponentScan의 대상이 되지 않는다.