-
Springboot -@SpringBootApplicationSpringBoot 2021. 10. 4. 16:47
# SpringBoot의 시작
- SpringBoot는 main() 메소드가 선언된 클래스를 기준으로 시작된다.
- 해당 main() 메소드에는 @SpringBootApplication 어노테이션이 붙어있다.
- 해당 @SpringBootApplication 어노테이션은 여러 어노테이션으로 이루어진 메타 어노테이션이다.
# @SpringBootApplication
- @EnableAutoConfiguration + @ComponentScan + @SpringBootConfiguration
- 위 3개의 주요 어노테이션으로 빈 등록 및 자동 설정을 수행한다
# @ComponentScan
- 해당 어노테이션이 선언된 클래스는 본인의 하위 패키지에서 @Component, @Service, @Repository, @Controller 등의 어노테이션을 찾아 Bean으로 등록.
- 즉, @ComponentScan이 선언된 클래스는 @SpringBootApplication이 선언된 클래스 즉, main클래스 이므로 main클래스 하위의 클래스들을 탐색
# @EnableAutoConfiguration
- @ComponentScan과는 달리 사전에 정의된 라이브러리들 중 특정 Condition(조건)에 맞는 라이브러리들을 Bean으로 등록 ⇒ 자동설정의 핵심 어노테이션
- 사전에 정의된 파일의 경로: Dependencies > spring-boot-autoconfigure > META-INF > spring.factories
# @SpringBootConfiguration
- Spring의 @Configuration 어노테이션을 포함하는 Springboot의 어노테이션
- @Configuration 어노테이션: Java Configure 설정 클래스로 간주되어 Bean으로 등록된다.
'SpringBoot' 카테고리의 다른 글
Springboot -동작원리 (0) 2021.10.04 Springboot -DI, IoC, Bean ... (0) 2021.10.04