依赖注入
构造器注入
见上一篇
在创建对象的时候注入。
Setter方法注入
可以注入任何的类型,如Bean(复杂对象),一般类型,集合等数据结构。
String
1
| <property name="username" value="This is username"/>
|
Bean
1
| <property name="address" ref="address"/>
|
Array
1 2 3 4 5 6 7
| <property name="books"> <array> <value>Java</value> <value>Python</value> <value>Scala</value> </array> </property>
|
List
1 2 3 4 5 6
| <property name="hobbies"> <list> <value>movies</value> <value>tennis</value> </list> </property>
|
Set
1 2 3 4 5 6 7
| <property name="games"> <set> <value>SC2</value> <value>LOL</value> <value>CSGO</value> </set> </property>
|
Map
1 2 3 4 5 6
| <property name="cards"> <map> <entry key="idcard" value="320325"/> <entry key="stucard" value="1801"/> </map> </property>
|
Properties
1 2 3 4 5
| <property name="info"> <props> <prop key="Title">CEO</prop> </props> </property>
|
Null
1 2 3
| <property name="wife"> <null>null_value</null> </property>
|
注意
发现对Array或List赋值,标签<array>
和list
可以互换,没有影响。
扩展方式注入
P命名空间
首先引入规范
1
| xmlns:p="http://www.springframework.org/schema/p"
|
其实就对应Setter方法注入,只不过简化了,使用p:
.
1
| <bean id="userServicePlus" class="com.edlison.design.spring.ioc.service.UserService" p:userDAO-ref="user" p:userServiceLog="This is a log."/>
|
C命名空间
首先引入规范
1
| xmlns:c="http://www.springframework.org/schema/c"
|
其实就对应构造器注入,只不过简化了,使用c:
.
使用有参构造。
1
| <bean id="addressPlus" class="com.edlison.design.spring.ioc.pojo.Address" c:city="Nanjing"/>
|