스프링부트를 실행 하면 톰캣이 떠 있고 여러가지 설정이 되는 이유가 @EnableAutoConfiguration 애노테이션 덕분이다.
@SpringBootApplication 은 아래 3개를 합친 것이다.
사실 두 단계로 나눠서 설정 빈을 읽어 들인다.
스프링의 기능, 애노테이션이 있는 패키지 위치부터 아래의 빈들을 읽어 들인다.
spring.factories에 있는 파일들이 스프링 부트 기본 설정으로 등록이 된다.
결국엔 자바 설정 파일 @Configuration 파일들을 읽어 들인다. key값을 보고 읽는다. 그런데 실제로는 조건에 따라 등록이 된다. @Condition... 애노테이션 들이 있다.