spring里的依赖注入模式(设值注入)

“控制反转”( Inversion of Control,IoC)一个大家都很熟悉的名词,而其大而化之的名字却很容易为它的神秘增加一道朦胧的面纱.为了更能描述其特点,于是诞生——“依赖注入”(Dependency Injection),
依赖注入模式主要分为:设置注入,构造子注入和接口注入.
本文只讲述设置注入.

每一个男孩都具有亲吻别人的能力.而且他们都想亲吻女孩.
每一个女孩可以选择由那位男生亲吻她,但是却不告诉别人到底由谁来亲吻她.
[code]public interface Kissable
{
void kiss( Object kisser);
}

public class Boy implements Kissable
{
public void kiss( Object kisser)
{
System.out.println("I was kissed by " + kisser);
}
}

public class Girl
{
private Kissable kissable;

public Kissable getKissable()
{
return kissable;
}

public void setKissable( Kissable kissable)
{
this.kissable = kissable;
}

public void kissSomeone()
{
kissable.kiss(this);
}
}
[/code]

于是女孩用写信的方式来告诉别人她希望谁来亲吻她.
下面的spring.xml告诉别人女孩希望boy来亲吻她.
[code]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="girl" class="com.ftf.pattern.dependencyInjection.setter.Girl">
<property name="kissable">
<ref local="boy" />
</property>
</bean>
<bean id="boy" class="com.ftf.pattern.dependencyInjection.constructor.Boy">
</bean>
</beans>
[/code]


故事结束了,那么我们再看看这段测试代码:
[code]
public class InterfacesTestCase extends TestCase
{
public void testKissing()
{
ApplicationContext ctx = new
FileSystemXmlApplicationContext("bin/spring.xml");
Girl girl = (Girl)ctx.getBean("girl");
girl.kissSomeone();
}
}
[/code]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值