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 寫靜態變數,把定義的方法...