转载:https://blog.csdn.net/qq_25269997/article/details/77862321
spring加载两个配置文件,里面各有一个相同name的BEAN,然后第一个被第二个的覆盖了,原因是因为放beanDefinition的那个MAP放进了两次相同KEY值的BEAN,因为:
解决这个问题的办法就比较简单了,只要将这个allowBeanDefinitionOverriding值在spring初始化的时候设置为false就行了。
而同意配置文件里的bean重名里会报错是因为:
第20行~第22行的代码主要用于确保BeanName的唯一性,跟一下第21行的方法就知道,BeanName与Bean别名都会放在Set中,然后每次加载Bean定义的时候都会去这个Set中检查当前BeanName和Bean别名是否存在,如果存在就报错。
和这个不一样: