前言:
Spring通过IOC/DI来实现获取对象
准备:
1. 建Spring2工程。
2. 导入Spring包
具体实现:
1. Person.jav
2. Chinese.java
3. Tool.java
4. ConcreteToolA.java
5. ConcreteToolB.java
6. applicationContext.xml
7. Client.java
Spring通过IOC/DI来实现获取对象
准备:
1. 建Spring2工程。
2. 导入Spring包
具体实现:
1. Person.jav
package com.test;
public interface Person {
public void work();
}
2. Chinese.java
package com.test;
public class Chinese implements Person{
private Tool tool;
public void setTool(Tool tool) {
this.tool = tool;
}
@Override
public void work() {
tool.realwork();
}
}
3. Tool.java
package com.test;
public interface Tool {
public void realwork();
}
4. ConcreteToolA.java
package com.test;
public class ConcreteToolA implements Tool {
@Override
public void realwork() {
System.out.println("realwork from ConcreteToolA");
}
}
5. ConcreteToolB.java
package com.test;
public class ConcreteToolB implements Tool {
@Override
public void realwork() {
System.out.println("realwork from ConcreteToolB");
}
}
6. 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"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="toolA" class="com.test.ConcreteToolA"></bean>
<bean id="toolB" class="com.test.ConcreteToolB"></bean>
<bean id="chinese" class="com.test.Chinese">
<property name="tool" ref="toolB"></property>
</bean>
</beans>
7. Client.java
package com.test;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
public class Client {
public static void main(String[] args) {
ClassPathResource cpr=new ClassPathResource("applicationContext.xml");
XmlBeanFactory factory=new XmlBeanFactory(cpr);
Person person=(Person)factory.getBean("chinese");
person.work();
}
}