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


    Random.java

    package com.test;

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

     public void printRandom() {
      System.out.println("輸出隨機(jī)整數(shù):  " + 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對(duì)象有2中方式可以得到Random對(duì)象:通過getRandom() 方法,通過createRandom()方法;
    兩者有什么不同呢,前一中方法得到的同一個(gè)對(duì)象,也就是說只要getRandom(),得到的都是同一個(gè)方法;后一種方法調(diào)用一次createRandom(),每次調(diào)用得到的都是性的Random對(duì)象.這就象前面說的spring ioc容器重寫bean抽象(或)具體方法的能力,從而返回指定名字的bean實(shí)例.一般用來得到一個(gè)非單例對(duì)象.

    另外還有一種方法可以實(shí)現(xiàn)類似功能:
    <bean id="random" class="com.test.Random" scope="prototype"/>,因?yàn)?span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋體; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">prototype范圍的bean,在沒一次請(qǐng)求都會(huì)生成一個(gè)新的對(duì)象,就象是用new Random()一樣;不足是,此屬性只有在早期版本的spring不支持!
    posted on 2008-08-11 16:31 二胡 閱讀(345) 評(píng)論(0)  編輯  收藏 所屬分類: spring

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


    網(wǎng)站導(dǎo)航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 亚洲美日韩Av中文字幕无码久久久妻妇 | 午夜免费福利在线| 亚洲美女人黄网成人女| 日韩免费在线观看视频| 国产av天堂亚洲国产av天堂 | 最近中文字幕大全免费视频| 亚洲av无码一区二区三区网站 | 亚洲av中文无码乱人伦在线播放| 日韩精品无码免费专区网站| 亚洲无码精品浪潮| 怡红院免费全部视频在线视频| 亚洲午夜久久久久久久久久| 天黑黑影院在线观看视频高清免费| 国产亚洲一区二区精品| 99爱视频99爱在线观看免费| 亚洲成a人片毛片在线| 成人毛片免费观看视频在线| 亚洲av日韩精品久久久久久a| 亚洲国产精品丝袜在线观看| 国内精品99亚洲免费高清| 久久久久亚洲AV无码专区首JN| 四虎永久在线观看免费网站网址 | 日韩免费视频观看| a高清免费毛片久久| 久久亚洲AV成人出白浆无码国产| 波多野结衣在线免费观看| 亚洲国产成人无码AV在线| 国产成人精品久久亚洲| 亚欧免费一级毛片| 亚洲色大成WWW亚洲女子| 亚洲精品成人在线| 中文字幕视频免费| 色偷偷尼玛图亚洲综合| 亚洲日韩乱码中文无码蜜桃臀网站| 18级成人毛片免费观看| 亚洲AV无码AV男人的天堂不卡| 亚洲美女又黄又爽在线观看| 丁香花免费完整高清观看| av电影在线免费看| 亚洲字幕AV一区二区三区四区| 亚洲精品国产美女久久久|