@SpringBootApplication에 대한 공식 설명
Indicates a configuration class that declares one or more @Bean methods and also triggers auto-configuration and component scanning. This is a convenience annotation that is equivalent to declaring @Configuration, @EnableAutoConfiguration and @ComponentScan.
하나 이상의 @Bean 메서드를 선언하고 자동 구성 및 구성 요소 검색을 트리거하는 구성 클래스를 나타냅니다. 이는 @Configuration, @EnableAutoConfiguration 및 @ComponentScan을 선언하는 것과 동일한 편리한 주석입니다.
@SpringBootApplication 요약
- 해당 어노테이션 하나가 @EnableAutoConfiguration, @ComponentScan, @Configuration을 하나로 묶어 놓은 거라고 볼 수 있다.
- 스프링부트를 기동하기 위해서는 main 메소드가 필요한데 여기에 SpringApplication.run(Application.class, args); 이 부분이 들어 간다.
- 해당 annotation을 설정한 클래스가 있는 package를 최상위 패키지로 인식하고 ComponentScan을 수행하기 때문에 해당 어노테이션이 있는 클래스의 파일 위치또한 중요하다.
해결
즉, @SpringBootApplication 는 이미 @EnableAutoConfiguration를 포함하는 개념으로, 두 어노테이션을 같이 사용할 경우 중복되는 선언이기 때문에 @EnableAutoConfiguration를 제거하고 @SpringBootApplication만 선언해 주면 됨.
https://opennote46.tistory.com/124
Spring Boot - 프로젝트 구성하기
프로젝트 구성하기 Spring Boot는 동작을 위한 특별한 코드 레이아웃을 요구하지 않는다. 하지만 도움이 될만한 best practice는 존재한다. 클래스가 패키지 정의를 포함하고 있지 않을때, 디폴트 패키
opennote46.tistory.com
'BackEnd > SpringBoot' 카테고리의 다른 글
[SpringBoot] 라이브러리 (0) | 2023.01.16 |
---|