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

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

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

    dingfirst

    On the Road

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      8 隨筆 :: 2 文章 :: 3 評(píng)論 :: 0 Trackbacks

    先看一下Proxy的兩種用法:

    public ? interface ?Foo? {
    ????
    int ?doSomthing();
    }
    ???一個(gè)基本的實(shí)現(xiàn):
    public?class?FooImpl?implements?Foo?{
    ????
    public?FooImpl()?{
    ????}


    ????
    public?int?doSomthing()?{
    ????????System.out.println(
    "FooImpl?doSomthing");
    ????????
    return?10;
    ????}

    ????
    }
    ???調(diào)用處理類(lèi),這也是aop的一種實(shí)現(xiàn)方式,呵呵。
    public?class?MyInvocationHandler?implements?InvocationHandler{
    ????Object?proxyObject;
    ????
    ????
    public?MyInvocationHandler(Object?_proxyObject)?{
    ????????
    this.proxyObject=_proxyObject;
    ????}


    ????
    public?Object?invoke(Object?proxy,?Method?method,?Object[]?args)?throws?Throwable?{
    ????????System.out.println(
    "in?proxy?instance");
    ????????
    return?method.invoke(proxyObject,args);
    ????}

    }
    ???兩種實(shí)現(xiàn)方式:
    public?class?ProxyUse?{
    ????
    public?ProxyUse()?{
    ????}


    ????
    public?void?useProxy1()?throws?SecurityException,?NoSuchMethodException,?InvocationTargetException,
    ????????????IllegalArgumentException,?IllegalAccessException,?InstantiationException?
    {
    ????????FooImpl?obj?
    =?new?FooImpl();
    ????????InvocationHandler?handler?
    =?new?MyInvocationHandler(obj);
    ????????Class?proxyClass?
    =?Proxy.getProxyClass(
    ????????????????Foo.
    class.getClassLoader(),?new?Class[]?{Foo.class});
    ????????Foo?f?
    =?(Foo)?proxyClass.
    ????????????????getConstructor(
    new?Class[]?{InvocationHandler.class}).
    ????????????????newInstance(
    new?Object[]?{handler});
    ????????System.out.println(f.doSomthing());
    ????}

    ????
    ????
    public?void?useProxy2()?throws?SecurityException,?NoSuchMethodException,?InvocationTargetException,
    ????????????IllegalArgumentException,?IllegalAccessException,?InstantiationException?
    {
    ????????FooImpl?obj?
    =?new?FooImpl();
    ????????InvocationHandler?handler?
    =?new?MyInvocationHandler(obj);
    ????????Foo?f?
    =?(Foo)?Proxy.newProxyInstance(
    ????????????Foo.
    class.getClassLoader(),
    ????????????
    new?Class[]?{?Foo.class?},
    ????????????handler
    ????????????);
    ????????System.out.println(f.doSomthing());
    ????}

    ????
    ????
    public?static?void?main(String?[]?args){
    ????????ProxyUse?use
    =new?ProxyUse();
    ????????
    try{
    ????????????use.useProxy1();
    ????????????use.useProxy2();
    ????????}
    catch(Exception?ex){
    ????????????ex.printStackTrace();
    ????????}

    ????}


    }

    看一下java api doc

    static?InvocationHandlergetInvocationHandler(Object?proxy)
    ??????????返回指定代理實(shí)例的調(diào)用處理程序。
    static?Class<?>getProxyClass(ClassLoader?loader, Class<?>...?interfaces)
    ??????????返回代理類(lèi)的 java.lang.Class 對(duì)象,并向其提供類(lèi)加載器和接口數(shù)組。
    static?booleanisProxyClass(Class<?>?cl)
    ??????????當(dāng)且僅當(dāng)指定的類(lèi)通過(guò) getProxyClass 方法或 newProxyInstance 方法動(dòng)態(tài)生成為代理類(lèi)時(shí),返回 true。
    static?ObjectnewProxyInstance(ClassLoader?loader, Class<?>[]?interfaces, InvocationHandler?h)
    ??????????返回一個(gè)指定接口的代理類(lèi)實(shí)例,該接口可以將方法調(diào)用指派到指定的調(diào)用處理程序。

    沒(méi)時(shí)間了,先這樣吧。


    ?

    posted on 2006-07-26 17:48 dingfirst 閱讀(266) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲日韩中文字幕| 亚洲毛片免费观看| 亚洲国产V高清在线观看| 亚洲精品无码不卡在线播放| 久久大香伊焦在人线免费| 国产V亚洲V天堂A无码| 成人免费一区二区三区| 亚洲最大av无码网址| 精精国产www视频在线观看免费| 亚洲日韩国产一区二区三区| 精品一区二区三区免费视频| 亚洲无码在线播放| 一级毛片**不卡免费播| 亚洲韩国在线一卡二卡| 男女免费观看在线爽爽爽视频| 久久久久久久亚洲Av无码| 999久久久免费精品国产 | 成人久久久观看免费毛片| 亚洲国产精品无码久久青草| 成人妇女免费播放久久久| 久久夜色精品国产噜噜亚洲AV| 亚洲一级免费毛片| 亚洲精品无码专区| 久久久久亚洲AV成人网人人软件| a级毛片100部免费观看| 亚洲欧洲日本国产| 免费日本黄色网址| a级毛片免费播放| 亚洲一区二区三区在线观看蜜桃 | 一区二区三区无码视频免费福利 | 亚洲AV无码一区二区三区人| 日韩视频免费一区二区三区| 一级做a爰片性色毛片免费网站| 亚洲中文字幕无码一区| 18禁止观看免费私人影院| 立即播放免费毛片一级| 久久精品国产亚洲av麻豆| 免费看美女让人桶尿口| 成人性生交大片免费看好| 亚洲男人天堂2018av| 亚洲午夜久久久影院|