該簡單例子實現方法的前置增強列印日誌,簡單的來說就是在呼叫某個方法之前會呼叫另乙個方法
普通類:
calculator
@component
public class calculator
public int sub(int i,int j)
public int mul(int i,int j)
public int div(int i,int j)
}
通過@component註解將該類新增到ioc容器,在ioc容器中可以通過getbean("calculator")獲得例項
切面:
loggingaspect
@aspect
@component
public class loggingaspect
}
指定了calculator類中的所有發放都有個beformethod()前置方法
@aspect;@before;joinpoint;都是org.aspectj.lang包下的
@aspect註解指定了該類為切面
execution(public int springaop.calculator.*(..))可以換為execution(* springaop.calculator.add(int,int))表明匹配返回值和修飾符為任意型別的add(int ,int )方法
配置檔案:
有了第一行才能使用註解,有了第二行才能使用aop
測試方法和結果:
基於註解SpringAOP實現
aop 動態 指在程式執行期間動態的將某段 切入到指定方法指定位置進行執行的程式設計方式 1 匯入aop模組 spring aop spring aspects org.springframework spring aspects 5.2.7.release 2 定義乙個業務邏輯類 mathcalc...
Spring Aop 註解和配置實現
1 註解方式實現 1 需要在配置檔案中配置開啟 2 其他資訊直接寫在 中,方便理解。package com.cms.modules.audit import org.aspectj.lang.proceedingjoinpoint import org.aspectj.lang.annotation...
springAOP註解式切面實現
org.springframework spring aop 4.3.11.release org.springframework spring aspects 4.3.11.release 我這裡監聽的是service層 component aspect public class testaspe...