spring.net的简单使用(四)对象属性注入
创建了对象,如果是简单对象就到此为止,如果是复杂对象,则需要为它的属性赋值。
属性赋值有两种方法:属性注入和构造器注入。
一、属性注入
在object节点下使用property就是属性注入,如下:
1
2
3
4
5
|
< object name= "person" type= "LINQDemo.person,LINQDemo" > <property name= "name" value= "ren" ></property> <property name= "id" value= "2" ></property> </ object > |
property节点就是为person类的属性注入值。
简单的值类型可以直接通过value赋值,上述就分别赋值了int和string类型的数据。
内联类型则需要同过ref属性来设置,比如:
1
2
3
4
5
6
7
|
声明student类实例 < object name= "stu" type= "LINQDemo.student,LINQDemo" /> 调用 < object name= "person" type= "LINQDemo.person,LINQDemo" > <property name= "name" ref =”stu“></property> </ object > |
也可以这样:
1
2
3
|
<property name= "stu" > < object name= "per" type= "LINQDemo.person,LINQDemo" ></ object > </property> |
二、构造函数注入
构造器注入使用constructor-arg标签作为标识,它是属性包括name、ref。value。
1
2
3
4
5
6
|
< object name= "stu" type= "LINQDemo.student,LINQDemo" > </ object > < object name= "person" type= "LINQDemo.person,LINQDemo" > <constructor-arg name= "id" value= "1" /> <constructor-arg name= "stu" ref = "stu" > </ object > |
构造函数参数解析:
1.根据参数类型匹配
1
2
|
<constructor type= "int" value= "1234" > <constructor type= "string" value= "小人" > |
2.根据参数索引匹配
1
2
|
<constructor index= "0" value= "123" /> <constructor index= "1" value= "小人" /> |
3.根据参数名称匹配
1
2
|
<constructor name= "id" value= "123" /> <constructor name= "name" value= "xiaoren" /> |