spring-setter方式注入
被依赖的对象对象的创建无需早于需要依赖的对象,例如
假设有2个类
构造器注入:
<bean name ="simpleA" class="类的路径名字"/>
<constructor-arg name="model里面的成员变量" value="成员变量的赋值操作">
<constructor-arg name="变量1" value="我是变量1"/>
<constructor-arg name="变量2" value="我是变量2"/>
spring配置中property作为bean的属性。也就是指一个类中的成员。同时这个成员必须有get和set方法。
下面的simpleB依赖的与simpleA,那么需要在construction-arg ref属性中设置依赖的类在ioc容器中的名字; 以下为设值注入
<bean name="simpleB" class="类的全名 ——coplylified name">
<property name = "依赖的成员对象" ref="simpleA"/>
<property name = "我是成员变量"> value="设置注入”>
阐述作用:
simpleA对象是 一个类的实例,其通过构造器方式实例化。simpleB通过配置peroperty元素来调用setter方式以设置值。需要注意的是simpleB属性配置的是simpleA对象的引用
构造器注入
其中必须要有对应的构造器
这里涉及构造器的重载,一定要和类型匹配上
1、通过成员变量名匹配
<bean name ="simpleA" class="类的路径名字"/>
<constructor-arg name="model里面的成员变量" value="成员变量的赋值操作">
<constructor-arg name="变量1" value="我是变量1"/>
<constructor-arg name="变量2" value="我是变量2"/>
2、通过指数方式匹配
<bean name ="simpleA" class="类的路径名字"/>
<constructor-arg index="0" value="成员变量的赋值操作">
<constructor-arg index="1" value="我是变量1"/>
<constructor-arg index="2" value="我是变量2"/>
value值必须和设置的构造器的类型匹配上,否则会报错;当采用这种方式进行传值的时候,所有对应的参数必须全部设置