注入

1.注入方式

1.1 setter注入

<bean id=".." class="..">

<property name="属性名" [ref=""]>

<ref bean="要注入的beanid"/>

</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属性,指定参数的位置索引(index0开始).

     c.constructor可以通过type属性避免字符串和基本数据类型的混淆.

1.3 p命名空间注入

语法:

p:属性名="" //基本数据类型和String注入值

p:属性名-ref="beanid" //引用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="beanid"/>    

注意: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>

原文地址:https://www.cnblogs.com/yang82/p/8059950.html