四.Spring4學習-----依賴注入DI

一.依賴注入--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"/>



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章