一、属性注入
上篇我们简单提到依赖注入的用途。回顾一下所讲内容,发现在object节点下使用了<property name="Tool" ref="computer"/>。而property 标签正是用来属性注入的。而ref是用来标识是关联到哪个object。而name属性是指属性名。如下:<object id="modernPerson" type="SpringNetIoC.ModernPerson, SpringNetIoC">
<property name="Tool" ref="computer"/>
</object>
值类型的注入是需要使用property 节点的value属性。如<property name="Name" value="Liu Dong"/>
作为内联类型可以使用如下:
<property name="Friend">
<object type="SpringNetDi.Person, SpringNetDi"/>
</property>
同理,内联类型可以是循环引用的对象(见代码处)。
二、构造函数注入
构造器注入使用constructor-arg标签作为标识。同样具有于属性注入相同的方式,使用name、ref、value作为构造器注入的属性,如下:
<constructor-arg name="argPerson" ref="person"/>
<constructor-arg name="intProp" value="1"/>
程序的代码如下: