BeanDefinitionOverrideException
in Debugging
Spring Boot 2+
에서 발생하는 예외
같은 이름의 Spring Bean
이 두개이상 생성되었다는 예외다.
Spring Boot 2.x
부터는 Spring 5x
가 반영되었다.
Spring 5
부터는 컴포넌트 탐색과정에서 발생하는 오버헤드를 감소시키기 위한 여러가지 정책이 반영되었는데,
그 중에 하나가 생성한 빈을 덮어쓰는 상황을 강제적으로 제한한다.
그래서 동일한 이름을 가진 스프링 빈이 등록되려고 하면 BeanDefinitionOverrideException
이 발생한다.
@Qualifier
를 이용해 Spring Bean
을 구분하거나
아래와 같은 옵션을 설정파일에 반영해 해당 옵션을 비활성화 시키면 해결된다.
spring.main.allow-bean-definition-overriding: true