BeanDefinitionOverrideException

BeanDefinitionOverrideException

Spring Boot 2+에서 발생하는 예외

 

같은 이름의 Spring Bean이 두개이상 생성되었다는 예외다.

Spring Boot 2.x부터는 Spring 5x가 반영되었다.

Spring 5 부터는 컴포넌트 탐색과정에서 발생하는 오버헤드를 감소시키기 위한 여러가지 정책이 반영되었는데,

그 중에 하나가 생성한 빈을 덮어쓰는 상황을 강제적으로 제한한다.

그래서 동일한 이름을 가진 스프링 빈이 등록되려고 하면 BeanDefinitionOverrideException 이 발생한다.

@Qualifier를 이용해 Spring Bean을 구분하거나

아래와 같은 옵션을 설정파일에 반영해 해당 옵션을 비활성화 시키면 해결된다.

spring.main.allow-bean-definition-overriding: true

© 2022. All rights reserved.