• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 軟件測測之框架:一個使用spring框架AOP的有趣例子

    發表于:2009-11-04來源:作者:點擊數: 標簽:框架例子SpringAOPspring
    軟件測測之框架:一個使用spring框架AOP的有趣例子 軟件測試工具 關鍵字: 接觸spring有一段時間了,不過都是看的多,寫的少,工作忙,公司也不準備用。自己寫過一些小東西用到,也只用到了BeanFactory組裝對象,JdbcTemplate代替jdbc,事務管理。。。東抓一
    軟件測測之框架:一個使用spring框架AOP的有趣例子  軟件測試工具

    關鍵字:

     

    接觸spring有一段時間了,不過都是看的多,寫的少,工作忙,公司也不準備用。自己寫過一些小東西用到,也只用到了BeanFactory組裝對象,JdbcTemplate代替jdbc,事務管理。。。東抓一把,西抓一把,沒形成系統。最近也在看spring自帶的reference,一時手癢,寫了個AOP的創建advice的例子,比之單純地使用TransationProxyFactoryBean對AOP的理解又深入了點,打算看看它的源代碼,基于CGLIB的實現對類的代理不了解,倒是好奇它如何實現對接口的代理??也就是利用J2SE的動態代理技術。

    例子如下:講述一間書店開始打折促銷,規則是每一名顧客只能買一本書,而且< spring in action>已經脫銷了。。。。。你可以去掉TestAdvice里的注釋看看各種運行結果,具體就不解釋咯,在代碼注釋里。

    首先,你必須對增強(advice)有所了解,增強就是在特定連接點執行的動作。advice contains the logic of your aspect。增強,分為4類:

    前增強(before) 在連接點之前調用
    后增強(after) 在連接點執行之后調用、
    環繞增強(around) 完整控制整個方法流程,必須調用MethodInvocation的proceed促使真實操作發生
    異常增強 針對某個異常拋出時調用
    書店,一個buyBook業務:

    package com.denny_blue.springdemo.aop;

    public interface BuyBook {
           public void buyBook(String customer,String book)throws NoThisBookException;
    }


    實現此接口的一個業務對象,如果顧客要買< spring in action>就拋出NoThisBookException異常。

    package com.denny_blue.springdemo.aop;

    public class MyBuyBook implements BuyBook {
     public void buyBook(String customer,String book)throws NoThisBookException{
      if(book.equals("< spring in action>"))
       throw new NoThisBookException("對不起,沒有"+book+"存貨了!");
      System.out.println(customer+",你好,你已經購買了一本"+book+"!");
     }
    }

     

    自定義兩個異常類,其中NoThisBookException被拋出時將觸發MyThrowsAdvice調用:

    //NoThisBookException.java

    package com.denny_blue.springdemo.aop;


    public class NoThisBookException extends RuntimeException {
     public NoThisBookException(String msg){
      super(msg);
     }

    }

    //BuyBookException.java

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>