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

          Spring 學(xué)習(xí)

          ApplicationContext 繼承了Beanfactoy;是對Beanfactory的更為寬泛的實現(xiàn)。

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

          配置簡寫

          一、構(gòu)造器注入:

          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)數(shù)組:<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. 構(gòu)造器注入(死的應(yīng)用


          關(guān)于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,所屬的類的應(yīng)用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沒有關(guān)系,可以隨便定義id !!!但是不能出現(xiàn)多個此類的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>


          關(guān)于構(gòu)造器的注入:

          autowire="constructor"
          需要在Order.java中加入一個構(gòu)造器
          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>


           


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


          網(wǎng)站導(dǎo)航:
           
          哥哥最近不是很忙
          主站蜘蛛池模板: 上高县| 泾川县| 永丰县| 巴南区| 慈溪市| 驻马店市| 法库县| 云安县| 巴楚县| 永和县| 柳林县| 静乐县| 沭阳县| 普兰店市| 通江县| 年辖:市辖区| 临海市| 阿合奇县| 耿马| 渝中区| 灵宝市| 怀宁县| 卓资县| 格尔木市| 洞口县| 扶余县| 利川市| 建昌县| 安陆市| 临泽县| 滨州市| 定结县| 台南县| 依安县| 平舆县| 万山特区| 拉孜县| 中西区| 福海县| 青河县| 喀什市|