关于两个配置文件中,name重复的问题
applicationContext.xml
<bean name="apple2" class="com.imooc.spring.ioc.entity.Apple"> <constructor-arg name="title" value="红富士"/> <constructor-arg name="color" value="红色"/> <constructor-arg name="origin" value="欧洲"/> <constructor-arg name="price" value="19.8"/> </bean>
applicationContext-1.xml
<bean name="apple2,apple7" class="com.imooc.spring.ioc.entity.Apple"> <constructor-arg name="title" value="红富士2号"/> <constructor-arg name="color" value="红色"/> <constructor-arg name="origin" value="欧洲"/> <constructor-arg name="price" value="29.8"/> </bean>
此时,
String[] configLocations = new String[]{"classpath:applicationContext-1.xml","classpath:applicationContext.xml"}; ApplicationContext context = new ClassPathXmlApplicationContext(configLocations); Apple apple7 = context.getBean("apple7", Apple.class); System.out.println(apple7.getTitle());
此时输出为什么是 红富士 而不是 apple7对应的 红富士2号
31
收起
正在回答
3回答
同学你好,先加载applicationContext-1.xml配置文件,后加载applicationContext.xml配置文件时,获得apple7,测试输出的是红富士,覆盖了之前的bean。
这是因为applicationContext-1.xml中bean的name值有apple2和apple7。applicationContext.xml中有bean的name值有apple2,name值有一样的,所以就会覆盖之前的bean。
祝:学习愉快~
java工程师2020版
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星