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

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

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

    posts - 51, comments - 17, trackbacks - 0, articles - 9
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    java模式之動態代理

    Posted on 2007-01-05 20:47 chenweicai 閱讀(392) 評論(1)  編輯  收藏

    package proxy;
    /**
    ?*
    ?* @author chen
    ?*
    ?*/
    public interface Subject {
    ?abstract public void request();
    ?abstract public void request2();
    }


    package proxy;

    /**
    ?*
    ?* @author chen
    ?*
    ?*/
    public class RealSubject implements Subject {
    ?
    ?public RealSubject(){
    ?}

    ?public void request() {
    ??// TODO Auto-generated method stub
    ??System.out.println("From real subject.request().");
    ?}
    ?
    ?public void request2() {
    ??// TODO Auto-generated method stub
    ??System.out.println("From real subject.request2()");
    ?}
    }

    package proxy;


    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;

    /**
    ?*
    ?* @author chenweicai
    ?*
    ?*/
    public class DynamicSubject implements InvocationHandler {
    ?
    ?private Object sub;
    ?
    ?public DynamicSubject(){
    ?}
    ?
    ?public DynamicSubject(Object obj){
    ??this.sub = obj;
    ?}

    ?public Object invoke(Object proxy, Method method, Object[] args)
    ???throws Throwable {
    ??// TODO Auto-generated method stub
    ???? System.out.println("before calling " + method);
    ???? method.invoke(sub,args);
    ???? System.out.println("after calling " + method);
    ??return null;
    ?}

    }


    package proxy;

    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    import java.lang.reflect.Constructor;
    import java.lang.reflect.Proxy;

    /**
    ?*
    ?* @author chen
    ?*
    ?*/
    public class Client {
    ?static public void main(String[] args)
    ??????? throws Throwable{
    ??? RealSubject rs = new RealSubject();? //在這里指定被代理類
    ??? InvocationHandler ds = new DynamicSubject(rs);? //初始化代理類
    ??? Class cls = rs.getClass();
    ??
    ??? //以下是分解步驟
    ??? /*Class c = Proxy.getProxyClass(cls.getClassLoader(),cls.getInterfaces()) ;
    ??? Constructor ct=c.getConstructor(new Class[]{InvocationHandler.class});
    ??? Subject subject =(Subject) ct.newInstance(new Object[]{ds});*/
    ??
    ??? //以下是一次性生成
    ??? Subject subject = (Subject) Proxy.newProxyInstance(cls.getClassLoader(),
    ??? cls.getInterfaces(),ds );

    ??? subject.request2();
    ?? }
    }


    評論

    # re: java模式之動態代理  回復  更多評論   

    2007-01-05 22:50 by xzcqwer
    這是在講述springframework中ProxyFactoryBean的實現機理吧,呵呵

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


    網站導航:
     
    主站蜘蛛池模板: 精品免费久久久久国产一区 | 亚洲人成在线免费观看| 国产h视频在线观看免费| 亚洲国产成人久久精品软件| 亚洲中文字幕无码专区| 久久久亚洲精品国产| 777亚洲精品乱码久久久久久 | 亚洲欧洲免费视频| 国产成人精品日本亚洲18图| av无码东京热亚洲男人的天堂| 国产情侣久久久久aⅴ免费| 亚洲情A成黄在线观看动漫软件 | 免费在线观看黄网站| 成人性生交大片免费看中文| 亚洲欧美国产日韩av野草社区| 国产亚洲精品免费视频播放| 国产麻豆视频免费观看| aa毛片免费全部播放完整| 亚洲AV男人的天堂在线观看| 亚洲精品无码高潮喷水在线| 蜜桃精品免费久久久久影院| 一区二区三区无码视频免费福利 | 精品女同一区二区三区免费播放 | 国产乱弄免费视频| 亚洲日本乱码一区二区在线二产线| 亚洲一区二区三区在线网站| 日本免费人成网ww555在线| 亚洲乱色伦图片区小说| 午夜亚洲国产理论秋霞| 四虎影视在线永久免费看黄| 日本片免费观看一区二区| 久久久久久久国产免费看| 亚洲成a人片在线看| 亚洲AV无码成人精品区蜜桃| 亚洲国产免费综合| 好爽又高潮了毛片免费下载| 午夜免费1000部| 久草福利资源网站免费| 国产区在线免费观看| 久久亚洲中文字幕无码| 亚洲综合色7777情网站777|