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,比如替换springbootasync的默认线程池。

方式1:
把bean覆盖再开起来,这是全局生效的

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

方式2:
注入的时候换一个bean name,然后引用的时候使用@Resource后者@Qualifier指定下使用的bean

方式3(取巧):
被替换的bean@ConditionalOnMissingBean注解,那么只要让自己的beanspring容器中先配置完成,那么自然就不会注入目标bean了,间接达成了替换的目的.

比如在自己的替换bean的配置类上使用@AutoConfigureBefore(xxx--目标bean的configuration类),让自己的bean先配置完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值