本文主要是介绍springboot2.1之后overriding默认false解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
概述
在springboot2.1之后默认的bean替换被set false了,和循环依赖被默认false一样,为了规范用户的定义。
上一波官方文档
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.1-Release-Notes
那么有些时候的确需要替换一些bean,比如替换springboot的async的默认线程池。
方式1:
把bean覆盖再开起来,这是全局生效的
spring.main.allow-bean-definition-overriding=true
方式2:
注入的时候换一个bean name,然后引用的时候使用@Resource后者@Qualifier指定下使用的bean
方式3(取巧):
被替换的bean有@ConditionalOnMissingBean注解,那么只要让自己的bean在spring容器中先配置完成,那么自然就不会注入目标bean了,间接达成了替换的目的.
比如在自己的替换bean的配置类上使用@AutoConfigureBefore(xxx--目标bean的configuration类),让自己的bean先配置完成
这篇关于springboot2.1之后overriding默认false解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!