一、参数的直接注入
1.1 通过set访问器进行注入
需要再实体类中添加对应属性的set方法才可以使用,使用<property>标签来标记注入的属性
标签中的name为实体类中的属性名,value为属性的值
<bean id="address" class="com.xja.bean.Address" scope="prototype">
<property name="province" value="北京"/>
<property name="city" value="北京"/>
</bean>
1.2 通过构造方法进行注入
需要包含该属性的构造方法才可以使用<constructor-arg>标签来标记要注入的属性
标签中的name为实体类中的属性名,value为属性的值
<bean id="u1" class="com.xja.bean.Student" scope="prototype">
<constructor-arg name="name" value="Tom"/>
<constructor-arg name="age" value="20"/>
</bean>
二、数组的注入
数组注入时要使用<array>标签来标记注入的值,值要用<value>标签来标记
<bean id="u1" class="com.xja.bean.Student" scope="prototype">
<property name="friends">
<array>
<value>OC</value>
<value>Helen</value>
<value>Happy</value>
<value>A</value>
</array>
</property>
</bean>
三、集合的注入
3.1 List注入
集合注入时要使用<list>标签来标记注入的值,值要用<value>标签来标记
<bean id="u1" class="com.xja.bean.Student" scope="prototype">
<property name="hobbies">
<list>
<value>乓乓球</value>
<value>足球</value>
<value>篮球</value>
</list>
</property>
</bean>
3.2 Map注入
map注入时要使用<map>标签来标记注入的值,由于map采用的键值映射的保存方式,所以他的值要使用<entry>标签来标记。entry中的key和value分别对应键和值。并且有两种注入方式
1.在entry标签中设置key和value属性
2.在entry标签下设置key标签和value标签
<bean id="u1" class="com.xja.bean.Student" scope="prototype">
<property name="score">
<map>
<entry key="语文" value="89"/>
<entry key="数学" value="76"/>
<entry>
<key><value>英语</value></key>
<value>34</value>
</entry>
</map>
</property>
</bean>
3.3 Set注入
Set注入时要使用<list>标签来标记注入的值,值要用<value>标签来标记
<bean id="u1" class="com.xja.bean.Student" scope="prototype">
<property name="tel">
<set>
<value>1231322313</value>
<value>123123123123</value>
<value>123123123123</value>
</set>
</property>
</bean>
3.4 null注入
null注入是比较特别的一种注入,如果我们只是将value属性设置称为null,这样的结果就是将属性的值设置成立null字符串。那如果要设置成null(属性为空)则需要用到<null/>标签
<bean id="u1" class="com.xja.bean.Student" scope="prototype">
<property name="wife">
<null/>
</property>
</bean>
3.4 properties注入
这种注入方式是为实体类中的Properties类型的对象进行注入而使用的,在注入时要设置<props>标签和<prop>标签来标记注入内容<props>下有多个<prop>,<prop>是以键值对的形式注入到属性中。
<property name="properties">
<props>
<prop key="driver">com.jdbc.cj.mysql.driver</prop>
<prop key="root">123</prop>
<prop key="user">1</prop>
</props>
</property>
四、c注入和p注入
注意,这两种注入方式设置xml配置
xmlns:p="http://www.springframework.org/schema/p" xmlns:c="http://www.springframework.org/schema/c"其区别是p是通过set访问器进行赋值,c是通过有参构造赋值
<bean id="arr1" class="com.xja.bean.Address" p:province="天津" p:city="天津"/>
<bean id="arr1" class="com.xja.bean.Address" c:province="天津" c:city="天津"/>