使用springAop實現日誌審計

2021-09-29 19:51:19 字數 689 閱讀 6264

記錄一次通過springaop實現審計日誌功能的需求實現

所謂審計日誌,就是把所有使用者的操作都要記錄下來,防止系統出問題了,追溯責任人

實現該功能的幾步:

1.首先使用@aspect定義乙個切面類logaspect

2.在切面類裡面使用@pointcut("@annotation(com.aaa.bbbb.operatordetail)")註解定義切點,

表示掃瞄所有用@logaspect註解標識的方法

3.@around:環繞增強,相當於methodinterceptor,可以在此處列印使用者的操作日誌

4.@afterreturning:後置增強,相當於afterreturningadvice,方法正常退出時執行

5.@before:標識乙個前置增強方法,相當於beforeadvice的功能,相似功能的還有

6.@afterthrowing:異常丟擲增強,相當於throwsadvice

7.@after: final增強,不管是丟擲異常或者正常退出都會執行

8.定義乙個operatordetail的註解

9.接下來就可以在想列印使用者操作日誌的方法上加上operatordetail註解

審計日誌可以列印了,但是如果把審計日誌和系統日誌輸出到不同的日誌檔案呢?

1.配置springboot的logback-spring.xml配置檔案

使用spring Aop 切日誌 日誌管理

先看效果圖下面是資料庫的儲存操作日誌 配置檔案 工具類 public object around proceedingjoinpoint pjp throws throwable 方法通知前獲取時間,為什麼要記錄這個時間呢?當然是用來計算模組執行時間的 long start system.curre...

SpringAop切面實現日誌記錄

springaop切面實現日誌記錄 實現 原因 spring在處理中,可能是因為我的專案有事務,serviceimpl的方法被 後直接得不到了。換乙個思路 先得到自己的父類,然後通過父類得到真實的自己 解決方法 1 2 這個方法幫忙拿出註解中的operation屬性 3 因為有攔截serviceim...

使用Spring AOP記錄訪問日誌

api class clazz joinpoint.gettarget getclass 獲取目標類物件 string methodname joinpoint.getsignature getname 獲取切入點的方法名 string values anno.value 獲取註解的value屬性值...