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

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

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

    licheng700

    BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
      26 Posts :: 5 Stories :: 5 Comments :: 1 Trackbacks

    1.首先實(shí)際的業(yè)務(wù)處理,由于采用動(dòng)態(tài)代理(AOP思想)所以,必須基于接口編程.
       package proxy;
    public interface BusinessInterface {
     public void processBusiness();
     public int add(int a,int b);
    }
    2.實(shí)現(xiàn)具體業(yè)務(wù)的實(shí)現(xiàn)類(lèi)
    package proxy;
    public class BusinessImpl implements BusinessInterface {
     public void processBusiness() { 
      System.out.println("-----------processBusiness");
     }
     public int add(int a,int b)
     {
      System.out.println("result="+(a+b));
      return a+b;
     }
    }
    3.InvocationHandler接口提供一個(gè)執(zhí)行處理器,然后通過(guò)java.lang.reflect.Proxy得到一個(gè)
    代理對(duì)象,通過(guò)這個(gè)代理對(duì)象來(lái)執(zhí)行商業(yè)
     package proxy;

    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    import java.util.logging.Logger;

    /**
     * 日志代理處理器
     * InvocationHandler接口提供了一個(gè)執(zhí)行處理器
     */
    public class LogHandler implements InvocationHandler {

     private Logger logger = Logger.getLogger(this.getClass().getName());

     private Object delegate;

     public LogHandler(Object delegate) {
      this.delegate = delegate;
     }

     public Object invoke(Object proxy, Method method, Object[] args)
       throws Throwable {
      Object o = null;
      try {
       logger.info("method stats..." + method);
       o = method.invoke(delegate, args);
       logger.info("method ends..." + method);
      } catch (Exception e) {
       logger.info("Exception happends...");   
      }
      return o;
     }
    }
    4.測(cè)試類(lèi)
    package proxy;
    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Proxy;
    public class Test {
     public static void main(String[] args) {
      // 具體實(shí)現(xiàn)類(lèi)
      BusinessInterface businessImp = new BusinessImpl();
      // 動(dòng)態(tài)代理執(zhí)行處理器
      InvocationHandler handler = new LogHandler(businessImp);
      // 代理對(duì)象
      BusinessInterface proxy = (BusinessInterface) Proxy.newProxyInstance(
        businessImp.getClass().getClassLoader(), businessImp.getClass()
          .getInterfaces(), handler);
      // 由代理對(duì)象來(lái)執(zhí)行商業(yè)方法
      // 在商業(yè)方法被調(diào)用的同時(shí),執(zhí)行處理器會(huì)被自動(dòng)調(diào)用
      proxy.processBusiness();
      proxy.add(1, 2);
     }
    }

    posted on 2005-09-22 15:30 小海船 閱讀(305) 評(píng)論(0)  編輯  收藏

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: av电影在线免费看| 日韩免费码中文在线观看| 亚洲Aⅴ在线无码播放毛片一线天| 无码一区二区三区亚洲人妻| 一本一道dvd在线观看免费视频 | www.999精品视频观看免费| 日韩电影免费在线| 中文字幕无码精品亚洲资源网| 亚洲老妈激情一区二区三区| 亚洲神级电影国语版| 亚洲精品宾馆在线精品酒店| 羞羞网站免费观看| 色欲色香天天天综合网站免费| 免费H网站在线观看的| 亚洲&#228;v永久无码精品天堂久久 | 成人免费a级毛片| 亚洲?V乱码久久精品蜜桃| 亚洲电影一区二区三区| 亚洲欧洲国产综合AV无码久久| 又粗又黄又猛又爽大片免费| 国产AV无码专区亚洲AV漫画| 久久久久久国产精品免费免费| 玖玖在线免费视频| 一个人免费观看在线视频www| 免费人成网站在线高清| 亚洲韩国—中文字幕| 亚洲av成人一区二区三区在线播放| 中文字幕在线免费看线人| www.黄色免费网站| 亚洲自偷自偷图片| 久久久久久亚洲精品影院| 中国一级毛片视频免费看| 青春禁区视频在线观看直播免费| 亚洲综合色视频在线观看| 亚洲人成777在线播放| 草久免费在线观看网站| 国产91免费视频| 亚洲欧洲无码AV电影在线观看| 亚洲综合色丁香婷婷六月图片| 国产午夜不卡AV免费| 国产嫩草影院精品免费网址|