<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中文无码乱人伦在线播放 | 亚洲精品综合久久| 日韩精品无码人妻免费视频 | 美景之屋4在线未删减免费 | 亚洲另类图片另类电影| 91精品国产亚洲爽啪在线观看| 亚洲av永久无码精品表情包| 国产亚洲精品国产| 亚洲成AV人片在线观看WWW| 一级毛片**免费看试看20分钟 | 亚洲国产精品久久久久久| 亚洲AV人无码激艳猛片| 亚洲最新视频在线观看| 亚洲无线一二三四区| 中文无码亚洲精品字幕| 亚洲成在人线在线播放无码| 亚洲成a人片在线不卡一二三区| 亚洲成av人片天堂网无码】| 日本系列1页亚洲系列| 免费无码国产V片在线观看| 亚洲精品视频免费| 亚洲AV女人18毛片水真多| 国产亚洲视频在线播放大全| 成年大片免费高清在线看黄| 中文字幕无码免费久久9一区9 | 无码亚洲成a人在线观看| 免费一区二区无码视频在线播放| 2022免费国产精品福利在线| 国产在线精品免费aaa片| 免费人成在线观看69式小视频| A级毛片内射免费视频| 国产免费怕怕免费视频观看| 国产午夜亚洲不卡| 久久久亚洲欧洲日产国码二区| 久久精品国产99国产精品亚洲| 狠狠入ady亚洲精品| a视频在线观看免费| 国产精品69白浆在线观看免费| 亚洲一级毛片免费在线观看| 成全视频免费高清| 性色av免费观看|