1. 程式人生 > >註入方式

註入方式

構造器註入 基本數據類型 ring 區分 屬性註入 使用 命名 命名空間 所有

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註入對象通過無參構造函數創建

構造器註入對象通過構造方法創建,建議保留無參構造函數.

註入方式