例如在applicationx.xml,导入test1.xml和test2.xml 如下所示
application.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <import resource="test1.xml"/> <import resource="test2.xml"/> </beans>
test1.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="test" class="com.sunshine.pojo.Student" init-method="test1"/>
</beans>
test2.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="test" class="com.sunshine.pojo.Student" init-method="test2"/>
</beans>
Student类
public class Student { private String id; private String grade; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getGrade() { return grade; } public void setGrade(String grade) { this.grade = grade; } public void test1() { System.out.println("11111111"); } public void test2() { System.out.println("2222222222"); }public void test() { System.out.println("0000000"); } }
测试
@Test public void testSpring() { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); Object test = context.getBean("test"); System.out.println(test); }
测试结果与application中的导入其他配置文件的顺序有关 :
1、
<import resource="test1.xml"/>
<import resource="test2.xml"/>
结果
2222222222
com.sunshine.pojo.Student@29176cc12、
<import resource="test2.xml"/>
<import resource="test1.xml"/>
结果
11111111
com.sunshine.pojo.Student@29176cc1
结论:
当导入多个配置文件,含有相同的bean,获取到的bean是最后一个配置文件的。
彩蛋:
<import resource="test2.xml"/> <import resource="test1.xml"/> <bean id="test" class="com.sunshine.pojo.Student" init-method="test"/>结果:
0000000
com.sunshine.pojo.Student@29176cc1
当主配置文件中也定义了这个bean,定义这个bean的顺序在其他配置文件的后面,在用户获取的bean为主配置文件中的bean。