spring的aop的使用

2021-08-03 13:49:00 字數 2187 閱讀 5380

使用@aspect標籤標註的類就是乙個切面類

@aspect

@comment

public

class

calculatorloggingaspect

}

@before標識這個方法是個前置通知,切點表示式表示執行arithmeticacalculator藉口的add()方法。

execution * com.spring.aritheticcalculator.*(..)

第乙個*代表匹配任意修飾符及任意返回值,也可設定固定的返回引數如public int

第二個*代表任意方法

..在方法引數列表中使用,不限定型別。順序。個數

@after標識與@before使用方法相同,只是次切點是在連線點後面執行

注:無論此連線點方法是否能夠正常執行,@after方法都會執行

@afterreturning需要連線點方法正常返回之後才會執行

此標籤後的returning引數的作用是告知spring要獲取目標物件方法(被**物件)返回值, result

通知的引數列表中,指定乙個形參名字和returning屬性中的名字一致

joinpoint型別是框架中獲取連線點詳細資訊的方法類

@afterreturning(pointcut="exection(public int com.spring.aop.computerimpl1.*(..))",returning="result")

public

void

c(joinpoint jp,object result)

@afterthrowing

@afterthrowing(poincut="exection(public int com.spring.aop.computerimpl1.*(..))",throwing="ex")

public void d(joinpoint jp,exception ex)

環繞通知

是否執行這個連線點

環繞通知需要在通知方法的引數列表中,提供乙個proceedingjoinpoint介面型別引數的形參

@around("exection(public int com.spring.aop.computerimpl1.*(..))")

public

void

e(proceedingjoinpoint pjp)

在切面前面新增乙個@order()標籤在裡面新增引數,引數值越小優先順序越高

使用介面類來實現

public

class

validateaspect

implements

ordered

}

寫乙個方法沒有方法體

給方法加入乙個@pointcut(「切點表示式」)

通知當中pointcut=」方法名稱()」

@aspect

@comment

public

class

computeraspect

@before("getexcecution()")

public

void

logbefore(joinpoint jp)

}

一、習慣利用註解的方式來進行aop的配置,aop框架相容註解的,註解的方法有重用性

二、如何配置:

1)匯入aop命名空間

2)通過bean標籤來完成目標物件以及切面例項的配置

3)

expression="切點表示式"

id=""/>

id=""

ref="引用的類的例項">

method="方法名稱"

pointcut="具體的切入點"

或pointcur-ref="重用的切入點"

在專案的xml配置檔案中配置的標籤

作用:用來自動生成所有被aspect標註修飾的類生成**物件

同樣要在切面**類和被**類前面加入@component標籤,讓spring掃瞄建立乙個切面**類的例項

關於spring的AOP使用

目前專案中用的比較多的是 aspectj註解的切面和xml配置的aop 表述 最近這個專案用的是xml配置的aop 配置乙個跟節點,下面配置乙個advisor或者aspect,裡面再配置乙個pointcut的正則表示執行的地點和advice什麼時候執行什麼事。概念陳述 1.通知 advice 定義了...

Spring的AOP簡單使用

強烈推薦乙個大神的人工智慧的教程 相關概念 1.連線點 joinpoint 類裡面哪些方法可以被增強,這些方法稱為連線點 2.切入點 在類裡可以有很多的方法被增強,實際增強的方法稱為切入點 3.通知 增強 增強的邏輯,稱為增強 4.切面 aspect 增強具體方法的過程稱為切面 把增強用到切入點的過...

Spring中AOP的使用

1.引入jar包 2.在測試類中新增註解 新增測試的註解的位置 runwith springjunit4classrunner.class public class aoptest 1在工程中引入spring基本jar包 2.引入aop開發的相關jar包 4.在核心配置檔案中加入約束 5.建立切面類...