1.注入方式
1.1 setter注入
<bean id=".." class="..">
<property name="属性名" [ref=""]>
<ref bean="要注入的bean的id"/>
</property>
</bean>
注意:setter注入是通过属性的set方法注入的,所有
属性一定要提供getter/setter方法.
1.2 构造器注入
<bean id=".." class="..">
<constructor-arg>
<value>xx</value>
</constructor-arg>
</bean>
注意:构造器注入是通过bean的构造函数去注入的,所以
一定要提供有相关的构造函数和无参构造函数.
注意:a.一个constructor表示一个参数,且不区分顺序.
b.constructor可以通过index属性,指定参数的位置索引(index从0开始).
c.constructor可以通过type属性避免字符串和基本数据类型的混淆.
1.3 p命名空间注入
语法:
p:属性名="值" //基本数据类型和String注入值
p:属性名-ref="bean的id值" //引用bean的属性注入值.
注意:如果要使用p:,需要在配置文件中引入p命名空间.
xmlns:p="http://www.springframework.org/schema/p"
注意:p命名空间是bean属性形式的注入方式.其他的是子元素注入方式
例: <bean id=".." class=".." p:age="18"/> 1.4 setter注入和构造器注入的区别
1)setter是通过setter方法实现
构造器注入是通过构造函数实现
2)setter注入灵活性好.
构造器注入灵活性较差.
3)setter注入时效性差
构造器注入时效性好
4)setter注入对象通过无参构造函数创建
构造器注入对象通过构造方法创建,建议保留无参构造函数.
2.注入不同类型的值
2.1 注入直接量(基本数据类型+字符串)
<value></value>
注意:特殊字符&,>,<的实体&,<,>
或者使用<![CDATA[ 内容 ]]>
2.2 注入bean
<ref bean="bean的id值"/>
注意:bean属性可以引用配置文件引入的文件的bean的配置.
local属性只能引用本配置文件的bean配置.
2.3 使用内部bean
<property name="属性名">
<bean class=".."/>
</property>
注意:当定义的bean只有在这个地方使用时,可以使用内部bean.
2.4 注入集合类型数据
1) list
<property name="">
<list>
<value>..</value>
...
</list>
</property>
2) set
<property name="">
<set>
<value>..</value>
...
</set>
</property>
3) map
<property name="">
<map>
<entry>
<key><value>xx</value></key>
<value>yy</value>
</entry>
</map>
</property>
4)properties
<props>
<prop key="x">y</prop>
..
</props>
2.5 注入null和空串
注入null
<null/>
空串
<value></value>