1.首先要新增jar包
2.寫方法介面
public inte***ce calculate
3.寫方法的實現類,並把其加入到ioc容器中去
@component
public class calculateimpl implements calculate
public int sub(int i, int j)
public int mul(int i , int j)
public int div(int i,int j)
}4.寫切面,首先要把這個類加入到ioc容器中去,其次利用@aspect宣告它為切面。
定義所想執行的方法,在calculateimpl方法實現的相應位置加上通知。
在同乙個連線點上應用不止乙個切面時, 除非明確指定, 否則它們的優先順序是不確定的,這時候可利用@order()註解來設定優先順序,數字越小,優先順序越高。
@before: 前置通知, 在方法執行之前執行
@after: 後置通知, 在方法執行之後執行
@afterrunning: 返回通知, 在方法返回結果之後執行
@afterthrowing: 異常通知, 在方法丟擲異常之後
@around: 環繞通知, 圍繞著方法執行
@component
@aspect
public class ******aspect
@before("pointcut()")
public void before(joinpoint joinpoint)
//在後置通知中還不能訪問返回的結果
@after("pointcut()")
public void after(joinpoint joinpoint)
//在返回通知中能訪問返回的結果。在返回通知中, 只要將 returning 屬性新增到 @afterreturning 註解中, 就可以訪問連線點的返回值. 該屬性的值即為用來傳入返回值的引數名稱. 必須在通知方法的簽名中新增乙個同名引數. 在執行時, spring aop 會通過這個引數傳遞返回值.
@afterreturning(value = "pointcut()", returning = "result")
public void afterreturning(joinpoint joinpoint, object result)
//在出現制定異常的時候可以執行相應的**
@afterthrowing(value = "pointcut()", throwing = "error")
public void afterthrowing(joinpoint jp, throwable error)
/** 環繞通知是所有通知型別中功能最為強大的, 能夠全面地控制連線點. 甚至可以控制是否執行連線點
* 環繞通知需要攜帶proceedingjoinpoint型別的引數
* proceedingjoinpoint型別的引數可以決定是否執行該方法
* 環繞通知必須有返回值,返回值為目標方法的返回值, 否則會出現空指標異常
*/@around("pointcut()")
public object around(proceedingjoinpoint pjp) catch (throwable ex)
//後置通知
system.out.println(methoname+"around end");
return result;}}
5.在配置檔案中進行設定,並加入aop的命名空間namespaces
Spring五 AOP之使用註解配置
aop使用註解配置流程 1 當spring容器啟動時候。context component scan base package cn.itheima03.spring.aop.annotation context component scan 2 在上面的包及子包中查詢全部的類,依照類掃瞄註解的機制...
Spring 使用註解配置AOP
1.配置切點 切點 component預設是類名首字母小寫,也可以寫成 component demo123 進行自定義 author barrylee 2018年11月14日 上午8 50 51 component demo123 public class demo 2.配置通知 通知 compon...
Spring基於註解AOP配置
一 spring基於註解aop配置 1.假設建立乙個accountservice需要增強 執行其中每乙個方法都會加乙個記錄日誌的方法 則再建立乙個日誌類實現記錄日誌方法 將該類注入spring容器 component logger aspect 表示當前類是乙個切面類 public class lo...