隨筆 - 23  文章 - 15  trackbacks - 0
          <2013年6月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456



          留言簿(3)

          隨筆分類(19)

          搜索

          •  

          最新隨筆

          最新評論

          閱讀排行榜

          評論排行榜

          spring的三種注入方式:


          1. 接口注入(不推薦
          2. getter,setter方式注入(比較常用
          3. 構造器注入(死的應用


          關于getter和setter方式的注入
          •  autowire="defualt"
          •  autowire=“byName”
          •  autowire="bytype"
          例如:有如下兩個類需要注入
           1 package org.jia;
           2 
           3 public class Order {
           4     private String orderNum;
           5     @SuppressWarnings("unused")
           6     private OrderItem orderitem;
           7 
           8     public OrderItem getOrderitem() {
           9         return orderitem;
          10     }
          11 
          12     public void setOrderitem(OrderItem orderitem) {
          13         this.orderitem = orderitem;
          14     }
          15 
          16     public String getOrderNum() {
          17         return orderNum;
          18     }
          19 
          20     public void setOrderNum(String orderNum) {
          21         this.orderNum = orderNum;
          22     }
          23     
          24 }
          25 package org.jia;
          26 
          27 public class OrderItem {
          28     private String orderdec;
          29 
          30     public String getOrderdec() {
          31         return orderdec;
          32     }
          33 
          34     public void setOrderdec(String orderdec) {
          35         this.orderdec = orderdec;
          36     }
          37 }
          38 
          getter&&setter方式第一種注入:
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

          <beans>
              
          <bean id="orderItem" class="org.jia.OrderItem">
                  
          <property name="orderdec" value="item00001"></property>
              
          </bean>
              
          <bean id="order" class="org.jia.Order" >
                  <!-----注入變量 名字必須與類中的名字一樣------->
                  <property name="orderNum" value="order000007"></property>
                   <!--注入對象 名字為orderitem,所屬的類的應用id為orderItem-->
                  <property name="orderitem" ref="orderItem"></property>
              
              -->
          </bean>


          </beans>
          getter&&setter方式第二種注入: byName
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
          <beans>
              <!--此時的id就必須與Order.java中所定義的OrderItem的對象名稱一樣了,不然就會找不到-->
              <bean id="orderitem" class="org.jia.OrderItem">
                  
          <property name="orderdec" value="item00001"></property>
              
          </bean>
              
          <bean id="order" class="org.jia.Order" autowire="byName">
                  
          <property name="orderNum" value="order000007"></property>
              
          </bean>
          </beans>
          getter&&setter方式第三種注入:byType
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
          <beans>
              <!--按照byType注入則就與id沒有關系,可以隨便定義id !!!但是不能出現多個此類的id-->
              <bean id="orderitdfadafaem" class="org.jia.OrderItem">
                  
          <property name="orderdec" value="item00001"></property>
              
          </bean>
              
          <bean id="order" class="org.jia.Order" autowire="byType">
                  
          <property name="orderNum" value="order000007"></property>
              
          </bean>
          </beans>


          關于構造器的注入:

           autowire="constructor"
          需要在Order.java中加入一個構造器
          public Order(OrderItem item ){ orderitem = item; }
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
          <beans>
              
          <bean id="orderItem" class="org.jia.OrderItem">
                  
          <property name="orderdec" value="item00001"></property>
              
          </bean>
              
          <bean id="order" class="org.jia.Order" autowire="constructor">
                  
          <property name="orderNum" value="order000007"></property>
              
          </bean>
          </beans>

          posted on 2007-08-29 16:25 jiadong 閱讀(38119) 評論(6)  編輯  收藏 所屬分類: SPRING

          FeedBack:
          # re: 關于Spring的注入方式 2008-02-27 11:17 
          謝謝  回復  更多評論
            
          # re: 關於Spring的注入方式 2011-04-19 10:55 ohlala
          感謝您,非常實用的文章,也解決了我的問題。爬了不少網站,這篇很實用。再度感謝~  回復  更多評論
            
          # re: 關于Spring的注入方式 2011-07-31 10:45 EmptySauce
          終于懂了 。thx  回復  更多評論
            
          # re: 關于Spring的注入方式[未登錄] 2013-03-15 11:23 123
          非常感謝樓主,猶如撥開烏云見彩虹  回復  更多評論
            
          # re: 關于Spring的注入方式 2013-06-07 15:12 www.dsprint.cn
          謝謝分享  回復  更多評論
            
          # re: 關于Spring的注入方式 2013-06-07 15:13 www.dsprint.cn(武漢印刷)
          總結的不錯  回復  更多評論
            
          主站蜘蛛池模板: 紫云| 喀喇沁旗| 永泰县| 霞浦县| 海晏县| 门源| 宜章县| 株洲市| 柘荣县| 盱眙县| 任丘市| 西充县| 梓潼县| 湖北省| 石家庄市| 永仁县| 闸北区| 昆明市| 延吉市| 内江市| 大宁县| 杨浦区| 雷州市| 周至县| 龙口市| 安化县| 江油市| 富平县| 台中市| 长阳| 秦皇岛市| 凤城市| 哈巴河县| 叶城县| 昭苏县| 清镇市| 宁都县| 慈溪市| 灯塔市| 成都市| 资溪县|