从Spring Boot 2.1开始必须启用Bean覆盖,
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.1-Release-Notes
Bean Overriding
Bean overriding has been disabled by default to prevent a bean being accidentally overridden. If you are relying on overriding, you will need to set spring.main.allow-bean-definition-overriding to true.
Set
spring.main.allow-bean-definition-overriding=true
or yml,
spring: main: allow-bean-definition-overriding: true
再次启用覆盖。
Bean覆盖基于Bean的名称而不是其类型。例如
@Beanpublic ClassA class(){ return new ClassA();}@Beanpublic ClassB class(){ return new ClassB();}在> 2.1中将导致此错误,默认情况下,Bean名称取自方法名称。重命名方法或将name属性添加到Bean注释将是有效的解决方案。



