创建java项目,导入spring对应的jar包,这里我就不操作了:
创建bean类:
DoorKey.java:
package com.spring.test;
public class DoorKey {
private String name ; //钥匙名
public String getName() {
System.out.println("DoorKey: getName");
return name;
}
public void setName(String name) {
System.out.println("DoorKey: setName--" + name);
this.name = name;
}
@Override
public String toString() {
return "DoorKey [name=" + name + "]";
}
}
Door.java:
package com.spring.test;
public class Door {
private String name ; //门名
private DoorKey doorKey ;
public String getName() {
System.out.println("Door: getName");
return name;
}
public void setName(String name) {
System.out.println("Door: setName--" + name);
this.name = name;
}
public DoorKey getDoorKey() {
System.out.println("Door: getDoorKey");
return doorKey;
}
public void setDoorKey(DoorKey doorKey) {
System.out.println("Door: setDoorKey--" + doorKey);
this.doorKey = doorKey;
}
public void openDoor() {
System.out.println("开门: 门名--" + this.name + " , 钥匙名--" + doorKey.getName());
}
}
配置文件Context.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-3.0.xsd">
<bean id="door" class="com.spring.test.Door">
<property name="name" value="芝麻开门"/> <!-- 配置属性值 -->
<property name="doorKey" ref="doorkey"></property> <!-- 配置钥匙类属性 -->
</bean>
<bean id="doorkey" class="com.spring.test.DoorKey">
<property name="name" value="菠萝菠萝蜜"/><!-- 配置属性值 -->
</bean>
</beans>
测试类MainTest.java:
package com.spring.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainTest {
public static void main(String[] args) {
ApplicationContext context =
new ClassPathXmlApplicationContext("com/spring/test/Context.xml");
Door obj = (Door) context.getBean("door");
obj.openDoor();
}
}
右键运行测试类,结果如下,Door 和 DoorKey 对象实例都被创建, 属性都被注入进对象中:
[2019-03-29 01:06:56,014] [INFO] [org.springframework.context.support.ClassPathXmlApplicationContext.prepareRefresh:510] - Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@1f89ab83: startup date [Fri Mar 29 01:06:56 CST 2019]; root of context hierarchy
[2019-03-29 01:06:56,080] [INFO] [org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions:317] - Loading XML bean definitions from class path resource [com/spring/test/Context.xml]
DoorKey: setName--菠萝菠萝蜜
Door: setName--芝麻开门
Door: setDoorKey--DoorKey [name=菠萝菠萝蜜]
DoorKey: getName
开门: 门名--芝麻开门 , 钥匙名--菠萝菠萝蜜