西沙璞玉
          愛不容易
          posts - 0,comments - 4,trackbacks - 0

          Spring 學習

          ApplicationContext 繼承了Beanfactoy;是對Beanfactory的更為寬泛的實現。

          依賴注入的方式:1、構造函數;2、Setter方法注入(需要遵循javabean的規范)。

          配置簡寫

          一、構造器注入:

          1)常量值

          簡寫:<constructor-arg index="0" value="常量"/>

          全寫:<constructor-arg index="0"><value>常量</value></constructor-arg>

          2)引用

          簡寫:<constructor-arg index="0" ref="引用"/>

          全寫:<constructor-arg index="0"><ref bean="引用"/></constructor-arg>

          二、setter注入:    

                 1)常量值

                  簡寫:<property name="message" value="常量"/>

                  全寫:<property name="message"><value>常量</value></ property>

                 2)引用

                  簡寫:<property name="message" ref="引用"/>

                  全寫:<property name="message"><ref bean="引用"/></ property>

                 3)數組:<array>沒有簡寫形式

                 4)列表:<list>沒有簡寫形式

                 5)集合:<set>沒有簡寫形式

                 6)字典

                    簡寫:<map>

                       <entry key="鍵常量" value="值常量"/>

                       <entry key-ref="鍵引用" value-ref="值引用"/>

                      </map>

                   全寫:<map>

                       <entry><key><value>鍵常量</value></key><value>值常量</value></entry>

                       <entry><key><ref bean="鍵引用"/></key><ref bean="值引用"/></entry>

                     </map>

                 7)Properties:沒有簡寫形式


          spring的三種注入方式:

          接口注入(不推薦

          1. getter,setter方式注入(比較常用
          2. 構造器注入(死的應用


          關于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" ">

          <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" "
          >
          <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" "
          >
          <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" "
          >
          <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>


           


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          哥哥最近不是很忙
          主站蜘蛛池模板: 喜德县| 大埔县| 石楼县| 乌鲁木齐市| 泗洪县| 车险| 丁青县| 恩施市| 吉隆县| 金乡县| 泽库县| 灵石县| 莱芜市| 凤冈县| 阿克苏市| 金门县| 来宾市| 佛山市| 马关县| 鸡泽县| 宁河县| 区。| 六盘水市| 大荔县| 福鼎市| 鸡西市| 沙湾县| 宁远县| 余姚市| 德令哈市| 夏河县| 邵阳市| 阿拉善左旗| 三江| 南平市| 远安县| 霍城县| 固阳县| 临汾市| 怀宁县| 金堂县|