隨筆 - 23  文章 - 15  trackbacks - 0
          <2013年3月>
          242526272812
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456



          留言簿(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(武漢印刷)
          總結的不錯  回復  更多評論
            
          主站蜘蛛池模板: 张家界市| 和顺县| 哈密市| 略阳县| 包头市| 治多县| 深州市| 湾仔区| 辽阳市| 五寨县| 菏泽市| 浙江省| 旌德县| 论坛| 临桂县| 扶沟县| 阳山县| 阿城市| 陕西省| 葫芦岛市| 香河县| 广宁县| 松溪县| 梅州市| 锡林郭勒盟| 宁城县| 呈贡县| 永济市| 兴国县| 巩义市| 平乐县| 邻水| 石屏县| 余庆县| 潼关县| 灵武市| 博乐市| 桃江县| 商丘市| 黄骅市| 临汾市|