Spring學習之旅(八)Spring 基於AspectJ註解配置的AOP編程工作原理初探,aspectjaop

來源:互聯網
上載者:User

Spring學習之旅(八)Spring 基於AspectJ註解配置的AOP編程工作原理初探,aspectjaop

由小編的上篇博文可以一窺基於AspectJ註解配置的AOP編程實現。

本文一下未貼出的相關程式碼範例請關注小編的上篇博文《Spring學習之旅(七)基於XML配置與基於AspectJ註解配置的AOP編程比較》,在此不再贅述。

基於AspectJ註解配置的AOP編程,就是將所有配置資訊都放在原始碼中以註解的方式標註。以與“基於XML配置”的AOP編程相區別。

1)Spring AOP註解就是依賴AspectJ來實現。因此使用Spring AOP註解,必須引入Aspectj架構及相應的包(aspectjrt.jar和aspectjweaver.jar)。

關於包的下載與引入,請參考小編的另外一篇博文《Spring學習之旅(五)極速建立Spring AOP java工程項目》

所以“基於AspectJ註解配置的AOP編程”實際上是:Spring AOP+AspectJ架構進行切面編程。

2)建立Spring設定檔,並在設定檔中引入aop命名空間和context命名空間,並配置“AspectJ的註解支援”,以及自動掃描的包的支援。

3)基於AspectJ註解聲明切面

即在設計切面類時,在java原始碼中採用註解標註“切面的相關資訊”。

講一個java類聲明為一個切面:

首先,要註解成一個Bean,必須是IoC的Bean,可以是用@Component註解定義Bean。

其次,註解聲明為一個切面,使用@Aspect註解,同時在類的方法註解中給出與該切面相關的“通知”和“切入點”

然後,我們還可以指定切面的優先順序,使用@Order(層級號)。層級號為大於等於0的整數,值越小,優先順序越高。

4)基於AspectJ註解聲明通知

標註在切面類的方法上,AspectJ支援5種類型的通知註解:

@Before、@After、@AfterRunning、@AfterThrowing、@Around

舉一個例子:

    //註解為前置通知,並註解其切入點運算式    @Before("execution(* com.edu.aop.ArithmeticCalculator.*(..))")    public void validationArgs(JoinPoint joinPoint){        //具體方法實現  }    

在上篇博文中的執行個體中,給出了通知內切入點運算式的兩種寫法:一種具體確定的;一種泛化的。

當通知括弧內除了切入點運算式屬性外,還有其他屬性時,應寫明屬性對應的屬性值。

比如:

@AfterRunning(pointcut="execution(* com.edu.aop.*.*(..))",returning="abc")    public void afterMethod(JoinPoint joinPoint,Object abc){        //具體方法實現    }    
@AfterThrowing(pointcut="execution(* com.edu.aop.*.*(..))",throwing="e")    public void afterMethod(JoinPoint joinPoint,ArithmeticException e){        //具體方法實現    }    

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.