基於 Aspect的AOP配置

2021-09-01 16:36:28 字數 2015 閱讀 6563

1、spring除了支援schema方式配置aop,還支援註解方式:使用@aspect來配置

2、spring預設不支援@aspect風格的切面宣告,通過如下配置開啟@aspect支援:

3、通過以上配置,spring就能發現用@aspect註解的切面內並把它應用到目標物件上。

4、定義乙個切面:

@aspect

public class aspectstyle

}

5、後置返回通知:

@afterreturning("execution(* com.sxit..*.*(..))")

public void afterreturning()

6、後置異常通知:

@afterthrowing("execution(* com.sxit..*.*(..))")

public void throwss()

7、後置最終通知:

@after("execution(* com.sxit..*.*(..))")

public void after()

8、環繞通知:

@around("execution(* com.sxit..*.*(..))")

public object around(proceedingjoinpoint pjp) catch (throwable e)

system.out.println("方法環繞end.....");

}

9、按上面的每乙個通知都要寫乙個定義,其實這部分可以抽出來,定義個乙個公共的切入點。

package com.sxit;

import org.aspectj.lang.proceedingjoinpoint;

import org.aspectj.lang.annotation.after;

import org.aspectj.lang.annotation.afterreturning;

import org.aspectj.lang.annotation.afterthrowing;

import org.aspectj.lang.annotation.around;

import org.aspectj.lang.annotation.aspect;

import org.aspectj.lang.annotation.before;

import org.aspectj.lang.annotation.pointcut;

@aspect

public class aspectstyle

@before(value="init()")

public void before()

@afterreturning(value="init()")

public void afterreturning()

@afterthrowing(value="init()")

public void throwss()

@after(value="init()")

public void after()

@around(value="init()")

public object around(proceedingjoinpoint pjp) catch (throwable e)

system.out.println("方法環繞end.....");

return o;

}}

10、列印資訊:

方法before前執行.....

方法環繞start.....

我看.....................

方法after執行.....

方法環繞end.....

方法afterreurning執行.....

參考自:

Aspect註解的使用,實現aop事務

org.springframework.boot spring boot starter aop 專案結構 component public class user public int addnum string message,int num afterreturning是在around後面呼叫,...

基於註解的AOP配置

before 前置通知 afterreturning 後置通知 after 最終通知 afterthrowing 異常通知 around 環繞通知 pointcut 指定切入點表示式 使用方法 pointcut execution cn.itcast.service.impl.private voi...

基於註解配置的AOP

首先在spring的xml檔案中完成相應的配置 在持久化類中加上註解,方便使用id呼叫 注意這裡設定了乙個異常 1 0的異常 日誌類的 如下 import org.aspectj.lang.annotation.import org.springframework.stereotype.compon...