2. spring自動注入

1.DI的實現方式----自動注入
  在bean標籤中 加屬性  autowire
  取值有   no   默認值
 byName   根據屬性的名字  去容器中找對應的組件id
 byType   根據屬性的類型去查找   類型有一樣就報錯
 constructor   優先按照構造方法參數的名字去查找  如果找不到 則啓用參數的類型去查找
               如果按照類型找類型有相同就不加載
              用<property>  不能佔住參數位置     <constructor-arg> 可以佔住位置
 autodetect   自動選擇  之前版本有 現在已經不支持了
 
2.bean參數注入
  2.1 普通類型 (字符串  整數  浮點數)
   <property  name="屬性名"   value="值"  > </property>
   <property  name="屬性名"   >
       <value> 值  <value>
   </property>
   
   <property  name="屬性名"   >
        </null>
   </property>
   2.2 注入集合類型
        一個javabean 中有一個 List 類型的屬性   則在配置文件中 使用  <list> 標記進行注入
  <property  name="friends"  >        
    <list>
        <value>猛哥</value>
        <value>梁哥</value>
        <value>小馬</value>
    </list>
  </property>

   一個javabean 中有一個 Set 類型的屬性   則在配置文件中 使用  <set> 標記進行注入
  <property  name="friends1"  >        
    <set>
        <value>猛哥</value>
        <value>梁哥</value>
        <value>小馬</value>
    </set>
  </property>
 
  一個javabean 中有一個 Map 類型的屬性   則在配置文件中 使用  <map> 標記進行注入  
<property  name="phones"  >        
    <map>
        <entry key=""  value=""> </entry>
        <entry key=""  value=""> </entry>
    </map>
</property>

一個javabean 中有一個 Properties 類型的屬性   則在配置文件中 使用  <props> 標記進行注入  
<property  name="phones2"  >        
    <props>
         <prop  key="key1">值</prop>
         <prop  key="key2">值2</prop>
    </props>
</property>  
 
 2.3  注入的集合的單獨定義    可以集合抽取出來 然後 被別的bean 引用
  <util:list  id="集合標識">
       <value>值</value>
       <value>值2</value>
  </util:list>
 
  <util:set  id="集合標識">
       <value>值</value>
       <value>值2</value>
  </util:set>
 
  <util:map  id="集合標識">
        <entry key=""  value=""> </entry>
        <entry key=""  value=""> </entry>
  </util:map>
 
  <util:properties  id="集合標識">
      <prop  key="">值</prop>
  </util:properties>  
                          
 3.練習
   定義一個Properties 集合 這個集合要求單獨定義   把連接數據庫的四個要素信息封裝到這個集合中              
 可以使用 Spring 的EL表達式 引用 集合 或者 對象的屬性數據  你只需要把 之前的 $ 符  換成  #
 之前數據庫的連接信息 都在 db.properties 中  Spring  Properties集合能加載 db.properties
 <!-- 使用 db.properties 文件構建一個集合  -->
 <util:properties id="dbparam"  location="classpath:db.properties"></util:properties>               
   
 -----------------------------------------------------------------------------------------
 4.組件掃描
   4.1 作用
   Spring 提供了一套基於 標註(註解) 的配置方式,這個技術可以大大簡化xml配置信息。
   4.2 組件掃描的實現步驟
      1.建立一個項目  拷貝 ioc  和  aop 的jar包
      2.拷貝spring 容器對應的配置文件    並且在這個配置文件 中 開啓組件掃描
       <context:component-scan    base-package="包名">  </context:componet-scan>
      3.在對應的類上 加 對應的註解標記
        @Component      通用組件標註
        @Repository     持久化層的標註
        @Service        服務層對應的標註
        @Controller     控制層對應的標註
      4.從spring 容器中獲取對應的組件對象即可
   4.3 組件的名字問題
                默認是類名首字母小寫  當然也可以指定加載到容器中的組件名    
   
  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章