程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> (spring-第19回【AOP基礎篇】)基於AspectJ和Schema的AOP,spring-aspectj

(spring-第19回【AOP基礎篇】)基於AspectJ和Schema的AOP,spring-aspectj

編輯:JAVA綜合教程

(spring-第19回【AOP基礎篇】)基於AspectJ和Schema的AOP,spring-aspectj


基於AspectJ就是基於@AspectJ注解,基於Schema就是全部依靠配置文件。那麼首先要了解Java注解。

 

Java注解初探

 

在JDK5.0中,我們可以自定義標簽,並通過Java語言的反射機制獲取類中標注的注解,完成特定的功能。

注解不能直接干擾程序代碼的運行,無論增加或者刪除注解,代碼都能夠正常運行。

注解舉例三步走:

 

第一步:定義注解和成員變量:

 

 

備注:

使用@interface修飾符定義注解類;

@Retention(…RUNTIME)表示該注解可以在運行期被JVM讀取;

@Target(…METHOD)表示這個注解只能被用到目標類的方法上。

 

第二步:把注解和成員變量標注在目標方法上。

 

 

 

 

 

第三步:獲取目標方法上所標注的注解對象,然後利用注解的成員變量為目標方法做一些事情。

 

 

 

 

基於AspectJ注解的AOP

 

 

有了前幾篇關於增強、切面的例子和java注解的基礎,用下面的例子便能清晰認識@AspectJ的用法。

 

第一步:目標類定義:

 

 

第二步:用@AspectJ定義一個切面

 

@Before是增強類型,還有許多:

 

第三步,用AspectJproxyFactory織入切面

 

第三步的Schema命名空間方式:

上例中切面的定義中beforeGreeting()方法沒有任何入參,因此暫時無法訪問目標連接點的信息。

上例中的execution(*greetTo(..))是切點表達式(函數),execution是關鍵字,後面是操作參數(入參)。

切點函數還有很多,可以大概了解一下:

類別

函數

入參

說明

方法切點函數

execution()

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved