本文主要是介绍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解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!