본문 바로가기
IT/Java

spring.main.allow-bean-definition-overriding=true 자바Bean중복 에러

by 성준하이 2023. 7. 15.
반응형

spring boot 에서 아래와 같은 에러가 발생하였다.

***************************
APPLICATION FAILED TO START
***************************


Description:


The bean 'commonFilter', defined in class path resource [/ApiConfig.class], could not be registered. A bean with that name has already been defined in file [D:\SourceEclipse-2020.06\CommonFilter.class] and overriding is disabled.


Action:


Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true

 

다양한 이유가 있겠지만 결국엔 중복된 이름의 Bean을 2개 이상 만들었기에 생성되는 에러이다.

 

초창기에는 자동 Bean 등록과 수동 Bean등록이 있다면 수동 Bean이 우선순위를 가졌으나 작은 에러들이 발생함에 있어서 SpringBoot에서는 default 로 false이 떨어지게 되었다.

 

해결 방법은 properties 파일에에러에서 보이는 spring.main.allow-bean-definition-overriding=true 이걸 설정해주면 된다.

 

혹시 properties 파일을 사용중이라면 아래 참고 포스팅 참고 바란다.

 


참고 포스팅

https://thenicesj.tistory.com/531

 

application.properties vs application.yml

본 포스팅의 주제는 제목과 같다. 먼저 둘의 차이를 보기 위해서 예제를 보면 다음과 같다. application.yml server: port: 8080 servlet: context-path: /test encoding: charset: UTF-8 enabled: true force: true spring: datasource:

thenicesj.tistory.com

 

반응형

댓글