Spring AOP 記錄日誌

2021-08-07 02:44:08 字數 1804 閱讀 4045

spring aop 最常用的地方之一就是記錄日誌,這裡記錄除了記錄日誌描述外,還記錄了方法請求的引數,並將記錄儲存到資料庫。這裡用到了自定義註解,使用如下

public

class

operationlog

implements

serializable

/**

* aop 日誌記錄,自定義註解

*@author ***

*@since jdk1.8

*/@target()

@retention(retentionpolicy.runtime)

@documented

public @inte***ce

systemservicelog

省略建立dao和service的**

@aspect

@component

public

class

systemlogaspect

@after("serviceaspect()")

public

void

doservicelog(joinpoint joinpoint) catch (classnotfoundexception e)

}/**

* 獲取註解中對方法的描述資訊 用於service層註解

*@param joinpoint 切點

*@return 方法描述

*@throws classnotfoundexception

*/private string getservicemthoddescription(joinpoint joinpoint) throws classnotfoundexception }}

return description;

}/**

* 獲取註解方法中的描述資訊 用於 service 層註解

*@param joinpoint 切點

*@return 方法描述

*@throws classnotfoundexception

*/private string getservicemthodtabletype(joinpoint joinpoint) throws classnotfoundexception }}

return description;

}/**

* 獲取json格式的引數

* *@param joinpoint

*@return

*@since jdk1.8

*/private string getservicemethodparams(joinpoint joinpoint)

listlist = new arraylist<>(arrays.aslist(arguments));

string params = jsonutil.getjsonstringfrompojo(list);

return params;

}}

@override

@transactional

@systemservicelog(description=constants.client_select_list, tabletype=constants.user_table_type)

public mapquery***(string name, string address)

使用Spring AOP記錄訪問日誌

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

SpringAop切面實現日誌記錄

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

spring AOP的 操作日誌記錄功能

1 寫個靜態類,定義靜態變數,把所有要用到的service 假設aop攔截到service層 實現類都寫成key,value的形式,如 map modemap new hashmap map.put userserviceimpl 使用者管理 用於記錄類與模組的對應關係。2 寫靜態變數,把定義的方法...