创建bean:
public class Student {
private Integer sid;
private String sname;
private Properties properties;
public Student() {
}
public Student(Integer sid, String sname, Properties properties) {
this.sid = sid;
this.sname = sname;
this.properties = properties;
}
public void setSid(Integer sid) {
this.sid = sid;
}
public void setSname(String sname) {
this.sname = sname;
}
public void setProperties(Properties properties) {
this.properties = properties;
}
@Override
public String toString() {
return "Student{" +
"sid=" + sid +
", sname='" + sname + '\'' +
", properties=" + properties +
'}';
}
}
在resources目录下创建stu.properties,写入:
id=10001
name=stu01
在resources目录下创建spring.spring_student.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
https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!-- 导入外部 properties 文件 -->
<context:property-placeholder location="classpath:./stu.properties"></context:property-placeholder>
<bean id="student" class="com.mine.bean.Student" lazy-init="true" >
<property name="sid">
<value type="java.lang.Integer">${id}</value>
</property>
<property name="sname">
<!-- 引用 properties 文件中的内容 -->
<value type="java.lang.String">${name}</value>
</property>
<!-- 对属性中 properties 类型进行赋值 -->
<property name="properties">
<props>
<prop key="sid">10002</prop>
<prop key="sname">stu02</prop>
</props>
</property>
</bean>
</beans>
public class MyMain {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring/spring_student.xml");
Student student = (Student) context.getBean("student");
System.out.println(student);
}
}
结果:
Student{sid=10001, sname='stu01', properties={sname=stu02, sid=10002}}
Process finished with exit code 0