AOP實踐 日誌記錄

2021-08-30 11:00:05 字數 1593 閱讀 2248

aop實踐-自定義註解實現日誌記錄

專案環境springboot

spring aop預設是使用aspectj的註解

1.引入jar包

org.springframework.boot

spring-boot-starter-aop

2.自定義註解

@target()

@retention(retentionpolicy.runtime)

@documented

public @inte***ce methodlog

3.日誌記錄

此處每次操作完成之後記錄日誌

@component

@aspect

public class logservice

@afterthrowing("methodcachepointcut()")

public void test(joinpoint point)

/*** 切面

* * @param point

* @return

* @throws throwable

*/@afterreturning("methodcachepointcut()")

public void recordoperatelog(joinpoint point) throws throwable

object methodparam = null;

methodparam = point.getargs(); // 獲取方法引數

mapparmap = objecttomap(methodparam[0]);

// 記錄日誌

//...

operatelog.setremark(string.valueof(methodmap.get("remark")));

operatelog.settypeid((integer)methodmap.get("opertype"));

//... }

/*** 獲取利用反射獲取類裡面的值和名稱

* * @param obj

* @return

* @throws illegalacces***ception

*/public static mapobjecttomap(object obj) throws illegalacces***ception

for (field field : clazz.getdeclaredfields())

return map; }

/*** 獲取方法中的中文備註

* * @param joinpoint

* @return

* @throws exception

*/public static mapgetmthodmap(joinpoint joinpoint) throws exception

break;}}

} return methodmap;

}}

4.使用

aop必須基於介面實現,所以在介面實現類的方法上加入如下註解即可

JavaLib 使用AOP幫你記錄日誌

這一次,我們乾脆點,直接進入正題。使用這個模組,你必要加入的包依賴 你需要告訴我,你的切入點 繼承lbaseweblogaspect,並實現pointcut 方法,配置你的切入點 寫乙個介面進行測試,我們還是使用上一次的切口吧 完整 我們放大點,看得仔細 日誌主要記錄以下資訊 請求客戶端ip 請求u...

關於用aop方式記錄日誌

最近需要開始剝離日誌邏輯,故想到了aop方式插入日誌。配置檔案 補充一點 如果在pointcut中存在多個表示式,可以用 來進行分隔,如 實際執行日誌插入的類 import org.aopalliance.intercept.methodinterceptor import org.aopallia...

Spring實踐之AOP一異常處理和日誌處理

使用spring的專案中,利用好spring核心之一 aop能夠幫助我們解耦 而且還能完成很多其他工作,這裡要說的就是異常處理和日誌列印。在我們的正常流程程式中,需要有日誌處理和異常處理,但是每個方法不可能都寫一套處理的 所以我們可以借助aop來實現處理的功能!但是有乙個缺點就是通過aop處理日誌時...