Spring中的IOC原理

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.");
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值