Spring支持构造注入和Set注入。
构造注入方式使用<constructor-arg>元素,Set注入方式使用Property元素。
Set注入方式如下:
<bean id="" class="">
<!--commonType包括java中的基本类型、包装类型、String类型-->
<property name="commonType" value="me">
<property name="arrayType"> <!--数组注入也是用list-->
<list>
<value>Hello1</value>
<value>Hello2</value>
<value>Hello3</value>
</list>
</property>
<property name="listType">
<list>
<value>Hello1</value>
<value>Hello2</value>
<value>Hello3</value>
</list>
</property>
<property name="setType">
<set>
<value>Hello1</value>
<value>Hello2</value>
<value>Hello3</value>
</set>
</property>
<property name="mapType">
<map>
<entry key="key1">
<ref bean="Obj1"/>
</entry>
<entry key="key2">
<value>Hello1</value>
</entry>
</map>
</property>
</bean>
构造注入方式:
<!-- 默认的情况下是按照参数的顺序注入 当指定index索引后就可以改变注入参数的顺序 。当构造函数的参数相同时,Spring会自动找到配制的构造方法 也可以用 type 来明确指定要用那个类型-->
<bean id="" class="">
<constructor-arg index="0">
<value>hello1</value>
</constructor-arg>
<constructor-arg index="1" type="java.lang.String">
<value>hello2</value>
</constructor-arg>
</bean>
<!--集合注入方式类似于上面Property注入方式中的配置-->
除了以上两种方式,Spring还可以通过bean的autowire属性为其提供自动绑定的功能,自动绑定有好几种方式,以byName方式最为常用,IOC容器会在其所管理的所用bean中按照name寻找,找到就注进去,如果找不到,则不做设置。Spring 2.5还提供了@autowire基于注解的方式进行自动绑定。