java中.xml配置中bean標(biāo)簽的認(rèn)識

注意事項:
1、怎么把我們的.xml文件注入到Spring容器中?

  千萬注意要在web.xml文件中,的<context-param></context-param>標(biāo)簽中配置我們自定義的.xml文件,通過<listener></listener>這個標(biāo)簽把我們配置的文件注入到Spring容器中;

2、怎么把我們的自己寫的類注入到Spring容器中?配置bean時,配置的是接口還是實現(xiàn)?

    1.我們只需在Spring容器能加載到的地方配置bean就可以把自定義類加入到Spring容器中,注意:我們配置的bean是實現(xiàn)類,而不是接口!! 
    2.我們可以直接在我們的impl類中配置@service,把相應(yīng)的類注入到spring容器中。
切記這兩種方式都可以注入

說明:在配置文件中配置bean,其實就是在Spring容器中注入類,這個類在Spring容器中有唯一一個表示id,我們可以通過Spring容器去管理這個類,非常方便(類似ios中的ARC自動釋放池);

Paste_Image.png
<!--注意:一旦在配置文件中配置bean映射,則配置的這個class就會被注入到Spring容器中,我們可以在程序中直接只用這個類,比如@Autowired為什么能夠自動寫入get/set方法,就是因為當(dāng)前類已經(jīng)注入到Spring容器中了, 當(dāng)然我們也可以在程序中通過id(不通過Spring容器),找到類對應(yīng)的對象,去處理相關(guān)的東西  -->
<!-- 這個配置的含義是:程序開始執(zhí)行org.springframework.web.servlet.view.InternalResourceViewResolver這個類,并設(shè)置這個類中的prefix屬性值為/,suffix屬性值為.jsp -->
     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
         <!-- 使用前綴和后綴 -->
         <property name="prefix" value="/"></property>
         <property name="suffix" value=".jsp"></property>
     </bean

總結(jié)剛學(xué)的關(guān)于spring的xml配置bean的知識。** 在ApplicationContext.xml文件中使用bean節(jié)點配置bean,bean的屬性id在IOC容器中必須是唯一的

<bean id="helloWorld" class="com.test.spring.beans.HelloWorld">
        <property name="name" value="Spring"></property>
</bean>

依賴注入有三種方式
屬性注入
構(gòu)造方法注入
工廠方法注入(很少使用,不推薦,本文不再介紹)

屬性注入
??通過 setter 方法注入Bean 的屬性值或依賴的對象。屬性注入使用 <property>
元素, 使用 name 屬性指定 Bean 的屬性名稱,value 屬性或 <value>
子節(jié)點指定屬性值 。屬性注入是實際應(yīng)用中最常用的注入方式。HelloWorld類中的setName()方法,對應(yīng)上邊代碼中的name屬性,例如:把setName()方法名改為setName2(),property中的name屬性值為name時則會報錯,需要將name屬性改為name2。

構(gòu)造方法
??構(gòu)造方法注入Bean 的屬性值或依賴的對象,它保證了 Bean 實例在實例化后就可以使用。 ??構(gòu)造器注入在 <constructor-arg>
元素里聲明屬性, <constructor-arg>
中沒有 name 屬性。使用value屬性值或value子節(jié)點為屬性賦值。可以同時使用索引 index 和type屬性對應(yīng)為哪個屬性賦值。index的值表示構(gòu)造函數(shù)中參數(shù)的位置。type表示成員屬性的類型,例如type="double"
或者type="Java.lang.String"

<bean id="car" class="com.test.spring.beans.Car">
        <constructor-arg value="Audi" index="0"></constructor-arg>
        <constructor-arg value="ShangHai" index="1"></constructor-arg>
        <constructor-arg value="300000" type="double"></constructor-arg>
</bean>

集合屬性

當(dāng)注入的屬性是集合時,Spring也提供了通過一組內(nèi)置的 xml 標(biāo)簽(例如: <list>, <set> 或 <map>) 來配置集合屬性。
??配置 java.util.List 類型的屬性, 需要指定 <list> 標(biāo)簽, 在標(biāo)簽里包含一些元素. 這些標(biāo)簽可以通過 <value> 指定簡單的常量值, 通過 指定對其他 Bean 的引用. 通過<bean> 指定內(nèi)置 Bean 定義. 通過 指定空元素. 甚至可以內(nèi)嵌其他集合.
??數(shù)組的定義和 List 一樣, 都使用 <list>配置 java.util.Set 需要使用 <set> 標(biāo)簽, 定義元素的方法與 List 一樣。

<!-- 測試如何配置集合屬性 -->
    <bean id="persion3" class="com.test.spring.beans.collection.Persion">
       <property name="name" value="Mike"></property>
       <property name="age" value="27"></property>
       <property name="cars">
       <!-- 使用list節(jié)點為list類型的屬性賦值 -->
           <list>
               <ref bean="car"/>
               <ref bean="car2"/>
           </list>     
       </property>
    </bean>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,971評論 6 342
  • 文章作者:Tyan博客:noahsnail.com 3.4 Dependencies A typical ente...
    SnailTyan閱讀 4,206評論 2 7
  • 文章作者:Tyan博客:noahsnail.com 3.4 依賴 標(biāo)準(zhǔn)企業(yè)應(yīng)用不會由一個對象(或Spring用語中...
    SnailTyan閱讀 1,210評論 0 1
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,778評論 18 399