springboot在同一个配置类里使用相同bean名称的不报错
2023-07-22 本文已影响0人
gcno93
1.相同配置文件相同的bean名称
image.png这里不会报错哦,但ioc容器里只有一个rabbit实例,写在前面的rabbit会在ioc中
看了一下源码:
image.png
同一个配置类会直接retrun就不会在去ioc容器里面了
主要的源码类
org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader
主要的方法
isOverriddenByExistingDefinition
2.不同配置文件相同的bean名称
image.pngimage.png
image.png
源码主要类
org.springframework.beans.factory.support.DefaultListableBeanFactory
主要方法
isAllowBeanDefinitionOverriding
关于isAllowBeanDefinitionOverriding的值,可以在以下配置配置,默认为false,会抛出异常
image.png image.png
如果不同文件相同的bean,后面的配置会覆盖前面的配置的bean,前提是isAllowBeanDefinitionOverriding=true