<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)類
    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è)試類
    package proxy;
    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Proxy;
    public class Test {
     public static void main(String[] args) {
      // 具體實(shí)現(xiàn)類
      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 小海船 閱讀(307) 評(píng)論(0)  編輯  收藏

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 中国亚洲女人69内射少妇| 日本免费大黄在线观看| 最新中文字幕免费视频| 国产亚洲漂亮白嫩美女在线| 亚洲国产成人久久精品软件| 久久国产精品成人片免费| 亚洲av成人无码久久精品| 亚洲国产成人精品青青草原| 无码国产精品一区二区免费16 | 久久久无码精品亚洲日韩京东传媒| 两个人的视频www免费| 亚洲午夜久久久久久噜噜噜| 中文字幕不卡免费视频| 亚洲AV无码国产丝袜在线观看| 一级毛片不卡片免费观看| 亚洲综合久久1区2区3区| 人与禽交免费网站视频| 亚洲午夜无码毛片av久久京东热| 天天干在线免费视频| 中文字幕精品亚洲无线码二区 | 久久亚洲中文无码咪咪爱| 免费看无码特级毛片| 亚洲av不卡一区二区三区 | 91免费在线视频| 婷婷久久久亚洲欧洲日产国码AV | 亚洲av丰满熟妇在线播放| 中文字幕天天躁日日躁狠狠躁免费| 亚洲国产成+人+综合| 日韩在线视频免费看| 精品一区二区三区高清免费观看| 韩国欧洲一级毛片免费| 久久夜色精品国产噜噜噜亚洲AV | 搜日本一区二区三区免费高清视频| 亚洲一区二区三区在线视频| 免费成人在线视频观看| 亚洲综合激情视频| 免费人成在线观看视频播放| 亚洲欧洲日韩国产一区二区三区| 国产成人无码区免费A∨视频网站| 一级毛片免费不卡直观看| 亚洲综合区图片小说区|