[코드 1-1]
@SpringBootApplication
public class CoffeeApplication {
public static void main(String[] args) {
SpringApplication.run(CoffeeApplication.class, args);
}
}
[코드 1-1]과 같이 Spring Boot Application 클래스에 @SpringBootApplication 애너테이션을 추가하면 기본적으로 해당 애플리케이션이 Spring Boot 기반의 애플리케이션으로 동작하도록 해줍니다.
그렇다면 @SpringBootApplication 은 내부적으로 어떤 기능을 하는 걸까요?
@SpringBootApplication 은 다음과 같은 세 가지 기능을 활성화 하는데 사용됩니다.
- @EnableAutoConfiguration
- Spring Boot의 자동 구성 메카니즘을 활성화합니다.
- @ComponentScan
- 애플리케이션 내의 패키지에서 @Component 애너테이션이 붙은 클래스들에 대한 스캐닝을 활성화합니다.
- @SpringBootConfiguration
- Spring Context에 Bean을 추가적으로 등록하거나 Configuration 클래스를 추가적으로 임포트 하는 기능을 활성화합니다.
- Spring Boot의 @*Test 애너테이션을 사용해서 테스트를 진행할 경우, 자동으로 @SpringBootConfiguration을 검색합니다.
@SpringBootApplication 을 무조건 붙여야 하는것은 아니며, [코드 1-2]와 @SpringBootApplication 이 지원하는 세 가지 기능을 개별적으로 적용할 수 있습니다.
[코드 1-2]
@SpringBootConfiguration(proxyBeanMethods = false)
@EnableAutoConfiguration
@Import({ CoffeeConfiguration.class, MemberConfiguration.class })
public class CoffeeApplication {
public static void main(String[] args) {
SpringApplication.run(CoffeeApplication.class, args);
}
}
'Java Backend 개발자 되기 > Spring Boot' 카테고리의 다른 글
Spring Boot 애플리케이션의 부트스트랩(Bootstrap) 과정 알아보기 (0) | 2022.04.12 |
---|