基於註解SpringAOP實現

2021-10-08 10:19:20 字數 1625 閱讀 7609

aop:【動態**】指在程式執行期間動態的將某段**切入到指定方法指定位置進行執行的程式設計方式

1、匯入aop模組:spring aop :(spring-aspects)

org.springframework

spring-aspects

5.2.7.release

2、定義乙個業務邏輯類(mathcalculator);在業務邏輯執行的時候進行日誌列印(方法執行前,方法執行後,方法異常)

@component

public class mathcalculator

}

3、定義乙個日誌切面類(logaspects):切面類裡面的方法需要動態感知mathcalculator.div執行到**然後執行

通知方法:

/**

* aop切面類

* @aspect :告訴spring當前類是乙個切面類

*/@aspect

@component

public class logaspects

//@before在目標方法之前切入,切入點表示式(指定在哪個方法切入)

@before("pointcut()")

public void logstart(joinpoint joinpoint)");

}@after("pointcut()")

public void logend(joinpoint joinpoint)

@afterreturning(value="pointcut()",returning = "result")

public void logreturn(joinpoint joinpoint,object result)");

}@afterthrowing(value="pointcut()",throwing = "e")

public void logexception(joinpoint joinpoint,exception e)");}}

4、給切面類的目標方法標註何時何地執行(通知註解)

5、將切面類和業務邏輯類(目標方法所在類)都加入到容器中

6、必須告訴spring哪個是切面類(給切面類加乙個註解:@aspect)

[7]、在配置類中新增註解 @enableaspectjautoproxy 【開啟基於註解的aop模式】

//配置類

@enableaspectjautoproxy

@configuration

@componentscan("com.yang")

public class mainconfigofaop

public class myaoptest 

}

正常返回時執行結果:

出現異常時執行結果

總結三步:

基於註解的Spring AOP

spring aop 基本概念 url joinpoint api url 1.定義註解 target retention retentionpolicy.runtime documented public inte ce testannotation 2.定義切面 切面 aspect 在sprin...

SpringAop註解實現

該簡單例子實現方法的前置增強列印日誌,簡單的來說就是在呼叫某個方法之前會呼叫另乙個方法 普通類 calculator component public class calculator public int sub int i,int j public int mul int i,int j pub...

Spring Aop 註解和配置實現

1 註解方式實現 1 需要在配置檔案中配置開啟 2 其他資訊直接寫在 中,方便理解。package com.cms.modules.audit import org.aspectj.lang.proceedingjoinpoint import org.aspectj.lang.annotation...