<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 小魚 閱讀(261) 評論(1)  編輯  收藏

    評論

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

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


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


    網站導航:
     
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    常用鏈接

    留言簿(3)

    我參與的團隊

    隨筆檔案

    文章檔案

    搜索

    最新評論

    主站蜘蛛池模板: 亚洲精品一级无码中文字幕| 国产精品黄页在线播放免费| 亚洲午夜日韩高清一区| 18禁亚洲深夜福利人口| 精品久久免费视频| 亚洲一久久久久久久久| 免费观看a级毛片| 亚洲欧美在线x视频| 亚洲成a人片在线观看老师| 特色特黄a毛片高清免费观看| www亚洲精品少妇裸乳一区二区| 看全免费的一级毛片| 男人的天堂亚洲一区二区三区| 久久亚洲国产最新网站| 在线观看无码的免费网站| 亚洲精品第一国产综合亚AV| 国产青草视频免费观看97| 国产av无码专区亚洲av毛片搜 | 国产精品亚洲а∨无码播放| 中文字幕成人免费高清在线 | 亚洲婷婷国产精品电影人久久| 欧洲乱码伦视频免费国产| 亚洲中文字幕久久精品无码喷水| 国产午夜精品理论片免费观看| 亚洲AV本道一区二区三区四区| 13一14周岁毛片免费| 中文字幕亚洲男人的天堂网络| 四虎影视大全免费入口| 羞羞漫画在线成人漫画阅读免费| 亚洲日本韩国在线| 暖暖免费日本在线中文| 亚洲国产精品午夜电影| 日韩在线天堂免费观看| 久久久久女教师免费一区| 亚洲欧洲国产日韩精品| 大学生高清一级毛片免费| 精品国产污污免费网站入口在线| 久久久久亚洲AV成人片| 国产免费牲交视频| 国产啪精品视频网站免费尤物| 亚洲va在线va天堂va手机|