September 03, 2021
@SpringBootApplication 하나로 Spring Boot Application을 실행할 수 있다.
Spring Boot의 자동 설정, Spring Bean 읽기와 생성이 모두 자동으로 설정된다.
Spring Boot의 설정을 나타낸다.
사전에 정의한 라이브러리들을 Bean으로 등록해 준다. 사전에 정의한 라이브러리들 모두가 등록되는 것은 아니고 특정 Condition이 만족될 경우에 빈으로 등록한다.
exclude =
를 사용해서 비활성화 하고 싶은 클래스를 고를 수 있다.
@EnableAutoConfiguration(exclude={ })
루트 패키지 이하의 클래스 중 @Component 어노테이션이 붙은 클래스들을 찾아서 Bean으로 등록한다.
@Component, @Configuration, @Repository, @Service, @Controller, @RestController
@SpringBootApplication의 핵심은 AutoConfiguration에 있다. pom.xml의 starter를 통해서 dependency와 버전에 대한 관리를 해주고 AutoConfiguration에 의해서 자동으로 빈을 설정하고 프로퍼티들의 타입화 등을 특정 컨디션에 맞게 알아서 설정되게 하는 것이다.