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

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

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

    小魚的空氣

    記錄我所思

    Spring 中方法的替換

    · 先建立一個包:javamxj.spring.basic.MethodReplacer ,然后把以下5個文件放在這個包下。
    ?
    Hello.java
    package javamxj . spring . basic . MethodReplacer ;

    public interface Hello {
    ??? publicvoid sayHello(String s);
    }
    ?
    HelloImpl.java
    package javamxj . spring . basic . MethodReplacer ;

    public class HelloImpl implements Hello {
    ??? publicvoid sayHello(String name) {
    ??????? System.out.println("Hello: " + name);
    ??? }
    }
    ?
    HelloReplacer.java
    package javamxj . spring . basic . MethodReplacer ;

    import java . lang . reflect . Method ;

    import org . springframework . beans . factory . support . MethodReplacer ;

    public class HelloReplacer implements MethodReplacer {
    ??? publicObject reimplement(Object o, Method m, Object[] args) throwsThrowable {

    ??????? System.out.println("你好: " + args[0]);
    ??????? returnnull;
    ??? }
    }
    ?
    beans.xml
    <? xml version = " 1.0 " encoding = " GBK " ?>
    <! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >

    < beans >
    ??? <bean id="helloReplacer" class="javamxj.spring.basic.MethodReplacer.HelloReplacer"/>
    ???
    ??? <bean id="helloA" class="javamxj.spring.basic.MethodReplacer.HelloImpl"/>
    ???
    ??? <bean id="helloB" class="javamxj.spring.basic.MethodReplacer.HelloImpl">
    ??????? <replaced-method name="sayHello" replacer="helloReplacer"/>
    ??? </bean>
    ???
    </beans>
    ?
    Main.java
    package javamxj . spring . basic . MethodReplacer ;

    import org . springframework . beans . factory . BeanFactory ;
    import org . springframework . beans . factory . xml . XmlBeanFactory ;
    import org . springframework . core . io . ClassPathResource ;
    import org . springframework . core . io . Resource ;

    public class Main {
    ??? publicstaticvoid main(String[] args) {
    ??????? Resource res = new ClassPathResource(
    ??????????????? "javamxj/spring/basic/MethodReplacer/beans.xml");
    ??????? BeanFactory ft = new XmlBeanFactory(res);

    ??????? // 沒有使用replaced-method
    ??????? Hello h = (Hello) ft.getBean("helloA");
    ??????? h.sayHello("分享Java快樂");
    ???????
    ??????? // 使用replaced-method
    ??????? h=(Hello) ft.getBean("helloB");
    ??????? h.sayHello("分享Java快樂");

    ??? }
    }
    ?
    ?
    簡單說明一下:
    ?
    · Hello是一個接口類,實現(xiàn)面向接口編程。
    ?
    · HelloImpl類實現(xiàn)了Hello接口,簡單的輸出一個語句。
    ?
    · HelloReplacer類要實現(xiàn)MethodReplacer接口,reimplement中提供替換后的方法。
    ?
    · beans.xml中定義了三個bean,helloReplacer指向HelloReplacer類;helloA和helloB都指向HelloImpl類,其中helloB中定義了replaced-method。
    ?
    · 在Main類中,對比輸出使用replaced-method前后的語句。
    ?
    · 這次需要將 spring-framework主目錄\lib\cglib 目錄中的cglib-nodep-2.1_2.jar加入到項目的 Libraries中,使用其中的動態(tài)代理。
    ?
    ?
    運行結(jié)果:
    ?
    Hello: 分享Java快樂
    你好: 分享Java快樂
    ?

    posted on 2006-10-23 16:52 小魚 閱讀(261) 評論(1)  編輯  收藏

    評論

    # re: Spring 中方法的替換 2006-10-23 17:33 冰川

    呵呵,支持下!  回復(fù)  更多評論   


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


    網(wǎng)站導(dǎo)航:
     
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(3)

    我參與的團隊

    隨筆檔案

    文章檔案

    搜索

    最新評論

    主站蜘蛛池模板: 国产亚洲3p无码一区二区| 日本免费人成视频播放| 亚洲精品国产精品乱码不99| 白白色免费在线视频| 成人午夜视频免费| 亚洲av无码久久忘忧草| 美女被免费喷白浆视频| 亚洲一区免费视频| 成人无码区免费视频观看| 亚洲色成人四虎在线观看| 成人a免费α片在线视频网站| 亚洲乱码一区二区三区国产精品| 色婷婷7777免费视频在线观看| 亚洲国产美女精品久久久久| 37pao成人国产永久免费视频| 亚洲国产成人精品久久| 毛片免费观看网址| 朝桐光亚洲专区在线中文字幕| 四虎永久成人免费影院域名| 九九综合VA免费看| 亚洲va中文字幕无码久久| 性色午夜视频免费男人的天堂| 亚洲国产成人精品无码区在线秒播 | 337p日本欧洲亚洲大胆人人| 国产资源免费观看| 国产成人无码精品久久久免费| 亚洲夜夜欢A∨一区二区三区| 免费A级毛片无码A∨| 亚洲一区二区三区不卡在线播放| 日韩精品免费一区二区三区| 一级毛片正片免费视频手机看| 亚洲AV无码国产精品麻豆天美| 一级女人18毛片免费| 野花视频在线官网免费1| 亚洲成A人片在线观看WWW| 日韩视频在线精品视频免费观看| 亚洲av永久无码| 久久精品亚洲中文字幕无码网站| 无码永久免费AV网站| 成人av片无码免费天天看| 亚洲伦理一二三四|