1. 多配置文件
1.1. 在分模块开发的时候, 我们可能使用多个配置文件。
1.2. 在一个配置文件中引入多个配置文件
1.3. 在类加载的时候加载多个配置文件
2. 多配置文件实例
2.1. 新建一个名为MultiXml的Java工程, 拷入Spring相关包
2.2. 创建Teacher.java
package com.lywgames.bean;
public class Teacher {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Teacher [id=" + id + ", name=" + name + "]";
}
}
2.3. 创建Student.java
package com.lywgames.bean;
public class Student {
private int id;
private String name;
public Student(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + "]";
}
}
2.4. 创建Clazz.java
package com.lywgames.bean;
public class Clazz {
private Teacher teacher;
private Student student;
public Teacher getTeacher() {
return teacher;
}
public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
@Override
public String toString() {
return "Clazz [teacher=" + teacher + ", student=" + student + "]";
}
}
2.5. 创建Test.java
package com.lywgames;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.lywgames.bean.Clazz;
import com.lywgames.bean.Student;
import com.lywgames.bean.Teacher;
public class Test {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
// ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml", "applicationContext2.xml", "com/lywgames/bean/applicationContext3.xml");
System.out.println(context.getBean(Teacher.class).toString());
System.out.println(context.getBean(Student.class).toString());
System.out.println(context.getBean(Clazz.class).toString());
context.close();
}
}
2.6. 在src目录下创建applicationContext2.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="teacher" class="com.lywgames.bean.Teacher">
<property name="id" value="#{333}"></property>
<property name="name" value="#{'lvbu'}"></property>
</bean>
</beans>
2.7. 在com.lywgames.bean目录下创建applicationContext3.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="student" class="com.lywgames.bean.Student">
<constructor-arg name="id" value="101"></constructor-arg>
<constructor-arg name="name" value="zhangsan"></constructor-arg>
</bean>
</beans>
2.8. 在src目录下创建applicationContext.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="clazz" class="com.lywgames.bean.Clazz">
<property name="teacher" value="#{teacher}"></property>
<property name="student" value="#{student}"></property>
</bean>
<!-- 导入根路径下配置文件 -->
<import resource="applicationContext2.xml"/>
<!-- 导入包下配置文件 -->
<import resource="com/lywgames/bean/applicationContext3.xml"/>
</beans>
2.9. 运行项目