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

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

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

    licheng700

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      26 Posts :: 5 Stories :: 5 Comments :: 1 Trackbacks

    1.首先實際的業務處理,由于采用動態代理(AOP思想)所以,必須基于接口編程.
       package proxy;
    public interface BusinessInterface {
     public void processBusiness();
     public int add(int a,int b);
    }
    2.實現具體業務的實現類
    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接口提供一個執行處理器,然后通過java.lang.reflect.Proxy得到一個
    代理對象,通過這個代理對象來執行商業
     package proxy;

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

    /**
     * 日志代理處理器
     * InvocationHandler接口提供了一個執行處理器
     */
    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.測試類
    package proxy;
    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Proxy;
    public class Test {
     public static void main(String[] args) {
      // 具體實現類
      BusinessInterface businessImp = new BusinessImpl();
      // 動態代理執行處理器
      InvocationHandler handler = new LogHandler(businessImp);
      // 代理對象
      BusinessInterface proxy = (BusinessInterface) Proxy.newProxyInstance(
        businessImp.getClass().getClassLoader(), businessImp.getClass()
          .getInterfaces(), handler);
      // 由代理對象來執行商業方法
      // 在商業方法被調用的同時,執行處理器會被自動調用
      proxy.processBusiness();
      proxy.add(1, 2);
     }
    }

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

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


    網站導航:
     
    主站蜘蛛池模板: 丁香亚洲综合五月天婷婷| 日韩毛片无码永久免费看| 亚洲熟女少妇一区二区| 国产免费久久久久久无码| 亚洲精品无码高潮喷水在线| 免费播放在线日本感人片| 亚洲国产精品自在在线观看 | 亚洲AV一宅男色影视| 人妻免费一区二区三区最新| 亚洲国产成人片在线观看| 95老司机免费福利| 亚洲视频在线观看2018| 日本19禁啪啪无遮挡免费动图| 免费在线观看一区| 亚洲AV无码一区东京热久久| 亚洲w码欧洲s码免费| 久久精品国产亚洲av麻豆蜜芽 | 国产亚洲美女精品久久| 亚洲日韩小电影在线观看| 一区二区三区观看免费中文视频在线播放| 97se亚洲综合在线| 四虎成人免费网址在线| 一区二区3区免费视频| 亚洲一区影音先锋色资源| AA免费观看的1000部电影| 羞羞视频免费网站含羞草| 精品国产综合成人亚洲区| 一个人免费观看在线视频www| 国产综合成人亚洲区| 精品亚洲一区二区| 99久久这里只精品国产免费| 黄人成a动漫片免费网站| 97久久精品亚洲中文字幕无码| 成人影片麻豆国产影片免费观看| 黄色一级毛片免费看| 中文字幕亚洲综合精品一区| 国产免费午夜a无码v视频| 无码精品国产一区二区三区免费| 亚洲精品久久久久无码AV片软件| 亚洲午夜久久久影院| 成人毛片免费观看|