一.依賴注入--dependency Injection
依賴:指bean對象創建依賴於容器。Bean對象的依賴資源
注入:指bean對象依賴的資源由容器來設置和裝配
DI(Dependency Injection) — IOC 的另一種表述方式:即組件以一些預先定義好的方式(例如: setter 方法)接受來自如容器的資源注入. 相對於 IOC
而言,這種表述更直接
二.Spring注入方式
1.構造器注入----Spring注入
通過構造方法注入Bean 的屬性值或依賴的對象,它保證了 Bean 實例在實例化後就可以使用。
構造器注入在 <constructor-arg> 元素裏聲明屬性, <constructor-arg> 中沒有 name 屬性
可詳見上一講IOC創建對象的三種方式:http://blog.csdn.net/aoaoxiaoxian/article/details/78190623
2.屬性注入(setter注入)---- Spring注入
要求被注入的屬性必須有set方法。Set方法的方法名由set+屬性首字母大寫。如果屬性是booolean沒有get方法是is。
1)常量注入
<bean id="student" class="cn.sxt.vo.Student">
<property name="name" value="張三丰"></property>
</bean>
2)bean注入
<bean id="addr" class="cn.sxt.vo.Address"/>
<bean id="student" class="cn.sxt.vo.Student">
<property name="name" value="張三丰"/>
<property name="addr" ref="addr"/>
</bean>
3)數組注入
<bean id="student" class="cn.sxt.vo.Student">
<property name="name" value="張三丰"/>
<property name="addr" ref="addr"/>
<property name="books">
<array>
<value>傲慢與偏見</value>
<value>仲夏夜之夢</value>
<value>霧都孤兒</value>
</array>
</property>
</bean>
4)List注入
<property name="hobbies">
<list>
<value>羽毛球</value>
<value>乒乓球</value>
<value>玻璃球</value>
<value>檯球球</value>
</list>
</property>
5)Map注入
<property name="cards">
<map>
<entry key="中國銀行" value="149127348932174"/>
<entry>
<key><value>建設銀行</value></key>
<value>622710023478234234</value>
</entry>
</map>
</property>
6)set注入
<property name="games">
<set>
<value>lol</value>
<value>dota</value>
<value>cs1.6</value>
<value>dnf</value>
</set>
</property>
7)Null注入
<property name="wife"><null/></property>
8)Properties注入
<property name="info">
<props>
<prop key="學號">2015052601</prop>
<prop key="sex">男</prop>
<prop key="name">小明</prop>
</props>
</property>
9)p命名空間的注入
<!-- p命名空間注入 屬性依然要設置set方法 -->
<bean id="user" class="cn.sxt.vo.User" p:name="風清揚" p:age="230"/>
10)c命名空間注入
<!-- c命名空間注入要求有對應參數的構造方法 -->
<bean id="u1" class="cn.sxt.vo.User" c:name="nico" c:age="16"/>