注入方式

1 setter注入

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

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

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

</property>

</bean>

注意:setter注入是通过属性的set方法注入的,所有

         属性一定要提供getter/setter方法.

2 构造器注入

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

<constructor-arg>

<value>xx</value>

</constructor-arg>

</bean>

注意:构造器注入是通过bean的构造函数去注入的,所以

        一定要提供有相关的构造函数和无参构造函数.

注意:a.一个constructor表示一个参数,且不区分顺序.

    b.constructor可以通过index属性,指定参数的位置索引(index0开始).

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

    

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"/>            

         

4 setter注入和构造器注入的区别

1)setter是通过setter方法实现

    构造器注入是通过构造函数实现

2)setter注入灵活性好.

    构造器注入灵活性较差.  

3)setter注入时效性差

    构造器注入时效性好

4)setter注入对象通过无参构造函数创建

   构造器注入对象通过构造方法创建,建议保留无参构造函数.

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