본문 바로가기
BackEnd/SpringBoot

[SpringBoot]Redundant declaration: @SpringBootApplication already applies @EnableAutoConfiguration

by 성은2 2023. 2. 2.

 

 

@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