<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是一個接口類,實現面向接口編程。
    ?
    · HelloImpl類實現了Hello接口,簡單的輸出一個語句。
    ?
    · HelloReplacer類要實現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中,使用其中的動態代理。
    ?
    ?
    運行結果:
    ?
    Hello: 分享Java快樂
    你好: 分享Java快樂
    ?

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

    評論

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

    呵呵,支持下!  回復  更多評論   


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


    網站導航:
     
    <2006年10月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    導航

    統計

    常用鏈接

    留言簿(3)

    我參與的團隊

    隨筆檔案

    文章檔案

    搜索

    最新評論

    主站蜘蛛池模板: 四虎影视永久在线精品免费| 国产成人精品日本亚洲直接 | 免费看男女下面日出水来| 国产亚洲色婷婷久久99精品91| 免费在线观看自拍性爱视频| 免费a级毛片无码av| 免费的黄网站男人的天堂| 亚洲精品无码激情AV| 一区二区三区免费看| 久久综合亚洲色HEZYO国产| 精品久久久久久无码免费| 亚洲女久久久噜噜噜熟女| 男女午夜24式免费视频| 亚洲午夜视频在线观看| xx视频在线永久免费观看| 亚洲av成人一区二区三区| 蜜臀91精品国产免费观看| 羞羞网站免费观看| 亚洲无码在线播放| 久久99热精品免费观看动漫| 亚洲无人区视频大全| 日韩高清在线免费看| 黄色片网站在线免费观看| 亚洲啪啪综合AV一区| 最近中文字幕免费完整| 亚洲色大成网站www久久九| 国产一级高清免费观看| 在线免费视频你懂的| 91亚洲精品第一综合不卡播放| 日韩亚洲国产高清免费视频| 国产精品国产亚洲区艳妇糸列短篇| 亚洲第一区在线观看| 久久这里只精品99re免费| 亚洲一区二区影视| 亚洲国产精品国产自在在线 | 一二三区免费视频| 亚洲欧洲日产国产综合网| 成人免费无码大片a毛片| 久青草视频97国内免费影视| 亚洲一级毛片免费在线观看| 亚洲色欲久久久久综合网|