<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    憨厚生

    ----Java's Slave----
    ***Java's Host***

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      165 隨筆 :: 17 文章 :: 90 評論 :: 0 Trackbacks
             spring中注入方式有多中,如構造方法,SET/GET方法等.lookup方法注入有些與其它的不一樣,此方法注入常用來得到一個非單例對象.
    lookup方法注入利用了spring ioc容器重寫bean抽象(或)具體方法的能力,從而返回指定名字的bean實例.一般用來得到一個非單例對象.
             如果方法不是抽象的,spring回簡單地覆蓋已有的實現,在基于XML的配置文件中,通過在bean定義中使用lookup-method元素來告訴Spring所要足入/覆蓋的方法將要返回的實際bean


    Random.java

    package com.test;

    public class Random {
     private int i = (int) (100 * Math.random());

     public void printRandom() {
      System.out.println("輸出隨機整數:  " + i);
     }

    }
    ------------------------------------------------
    HelloRandom.java

    package com.test;

    public interface HelloRandom {
     public Random getRandom();
        public Random createRandom();

    }

    -------------------------------------------------
    HelloRandomAbstract.java

    package com.test;

    public abstract class HelloRandomAbstract implements HelloRandom{
     private Random random;

     public Random getRandom() {
      return random;
     }

     public void setRandom(Random random) {
      this.random = random;
     }
        //此方法建議是抽象的
     public abstract Random createRandom();

    }

    ---------------------------
    XML文件如下:
    <bean id="random" class="com.test.Random" singleton="false"/>
       
        <bean id="helloRandomAbstract" class="com.test.HelloRandomAbstract">
       
            <lookup-method name="createRandom" bean="random"/>
           
            <property name="random">
                <ref local="random"/>
            </property>
         </bean>

    helloRandomAbstract對象有2中方式可以得到Random對象:通過getRandom() 方法,通過createRandom()方法;
    兩者有什么不同呢,前一中方法得到的同一個對象,也就是說只要getRandom(),得到的都是同一個方法;后一種方法調用一次createRandom(),每次調用得到的都是性的Random對象.這就象前面說的spring ioc容器重寫bean抽象(或)具體方法的能力,從而返回指定名字的bean實例.一般用來得到一個非單例對象.

    另外還有一種方法可以實現類似功能:
    <bean id="random" class="com.test.Random" scope="prototype"/>,因為prototype范圍的bean,在沒一次請求都會生成一個新的對象,就象是用new Random()一樣;不足是,此屬性只有在早期版本的spring不支持!
    posted on 2008-08-11 16:31 二胡 閱讀(353) 評論(0)  編輯  收藏 所屬分類: spring

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


    網站導航:
     
    主站蜘蛛池模板: 久久亚洲国产最新网站| 亚洲av日韩av永久无码电影| 亚洲精品免费网站| 亚洲AV成人一区二区三区观看 | 久久国产美女免费观看精品| 亚洲AV日韩AV天堂久久| 久久亚洲私人国产精品| 女人18毛片免费观看| 成人免费一区二区三区| 亚洲av专区无码观看精品天堂| 亚洲国产午夜中文字幕精品黄网站| 你是我的城池营垒免费看| 中文文字幕文字幕亚洲色| 久久久久亚洲精品男人的天堂| 91久久精品国产免费一区| 美女裸免费观看网站| 亚洲精品视频观看| 亚洲精品色婷婷在线影院| 成人免费视频77777| 毛片基地看看成人免费| 亚洲欧洲无卡二区视頻| 免费看的黄色大片| 亚洲日本VA中文字幕久久道具| 国产中文在线亚洲精品官网| aa级一级天堂片免费观看| 中文在线观看永久免费| 亚洲爆乳无码精品AAA片蜜桃| 黄网址在线永久免费观看| 久久久高清日本道免费观看| 色五月五月丁香亚洲综合网| 免费大片黄手机在线观看| 偷自拍亚洲视频在线观看99| 亚洲黄色免费网站| 国产精品亚洲一区二区三区在线| 日韩电影免费在线| a级毛片免费高清视频| 亚洲色无码专区一区| 亚洲人成亚洲精品| 亚洲一区二区三区在线观看精品中文| 国产精品免费小视频| 国产福利在线观看免费第一福利|