Spring Bean 是否可以覆盖和版本之间的关系 allowBeanDefinitionOverriding

大家好,我是神韵,是一个技术&生活博主。出文章目的主要是两个,一是好记忆不如烂笔头,记录总结中提高自己。二是希望我的文章可以帮到大家。欢迎来点赞打卡,你们的行动将是我无限的动力。
本篇主题是:Spring Bean 是否可以覆盖和版本之间的关系 allowBeanDefinitionOverriding

Spring默认所有版本都是允许Bean覆盖.DefaultListableBeanFactory类中allowBeanDefinitionOverriding参数默认是true。
在这里插入图片描述

Spring Boot2.1.0版本及之后默认是不允许bean覆盖。因为它在SpringApplication类中重新定义了allowBeanDefinitionOverriding参数并且没有初始化即默认值为false,覆盖了Spring中DefaultListableBeanFactory类定义的参数allowBeanDefinitionOverriding=true。
在这里插入图片描述

如果Spring Boot 小于2.1.0版本或者设置了allowBeanDefinitionOverriding=true,也就是允许bean可以覆盖,那存在两个bean时,configuration+bean组合的组件会覆盖component组件


版权声明:本文为qq_41055045原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。