IOC通俗的讲就是面向接口编程。
1,定义两个接口,类如下:
package com.svse.spring.ioc;
//墨水类型
public interface Ink {
public String getColor();
}
//纸张类型
package com.svse.spring.ioc;
public interface Paper {
public String getSize();
}
他们的具体实现类如下:
//蓝色墨水
package com.svse.spring.ioc;
public class BlueInk implements Ink {
public String getColor() {
return "蓝色";
}
}
//红色墨水
package com.svse.spring.ioc;
public class RedInk implements Ink {
public String getColor() {
return "红色";
}
}
//A4纸
package com.svse.spring.ioc;
public class A4 implements Paper {
public String getSize() {
return "a4";
}
}
//A5纸
package com.svse.spring.ioc;
public class A5 implements Paper {
public String getSize() {
return "a5";
}
}
//A6纸
package com.svse.spring.ioc;
public class A6 implements Paper {
public String getSize() {
return "a6";
}
}
2,用什么样的墨水和纸张打印类:
package com.svse.spring.ioc;
public class Printer {
private Ink ink = null;
private Paper paper = null;
public Ink getInk() {
return ink;
}
public void setInk(Ink ink) {
this.ink = ink;
}
public Paper getPaper() {
return paper;
}
public void setPaper(Paper paper) {
this.paper = paper;
}
public void print(String content)
{
System.out.println("[" + ink.getColor() +"]" +"["+ paper.getSize() +"]" + content);
}
}
3,在所建工程中添加spring-core.jar、 spring-beans.jar 、spring-context.jar包
在applicationContext.xml文件中对上面的具体实现类进行装配:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 定义Paper -->
<bean id="a4" class="com.svse.spring.ioc.A4"></bean>
<bean id="a5" class="com.svse.spring.ioc.A5"></bean>
<bean id="a6" class="com.svse.spring.ioc.A6"></bean>
<!-- 定义墨盒 -->
<bean id="redInk" class="com.svse.spring.ioc.RedInk"></bean>
<bean id="blueInk" class="com.svse.spring.ioc.BlueInk"></bean>
<!-- 定义打印机(组装打印机) -->
<bean id="printer" class="com.svse.spring.ioc.Printer">
<property name="ink" ref="blueInk"></property>
<property name="paper" ref="a6" ></property>
</bean>
</beans>
4,测试ioc
package com.svse.spring.ioc;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class IOCMain {
/**
* @测试
*/
public static void main(String[] args) {
ApplicationContext context =
new ClassPathXmlApplicationContext("applicationContext.xml");
Printer printer = (Printer)context.getBean("printer");
printer.print("Welcome 2 spring framework.");
}
}
Spring中的IOC原理
最新推荐文章于 2024-07-22 08:55:10 发布