springboot在同一个配置类里使用相同bean名称的不报错,而不同配置类会报错

1.相同配置文件相同的bean名称

image.png

这里不会报错哦,但ioc容器里只有一个rabbit实例,写在前面的rabbit会在ioc中
看了一下源码:

image.png

image.png

同一个配置类会直接retrun就不会在去ioc容器里面了

主要的源码类
org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader
主要的方法
isOverriddenByExistingDefinition

2.不同配置文件相同的bean名称

image.png

image.png

image.png

源码主要类
org.springframework.beans.factory.support.DefaultListableBeanFactory
主要方法
isAllowBeanDefinitionOverriding

关于isAllowBeanDefinitionOverriding的值,可以在以下配置配置,默认为false,会抛出异常


image.png
image.png

如果不同文件相同的bean,后面的配置会覆盖前面的配置的bean,前提是isAllowBeanDefinitionOverriding=true

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容