使用Spring AOP記錄訪問日誌

2021-08-29 20:25:32 字數 1350 閱讀 9511

api:

class clazz = joinpoint.gettarget().getclass(); //獲取目標類物件

string methodname = joinpoint.getsignature().getname(); //獲取切入點的方法名

string values = anno.value(); //獲取註解的value屬性值

securitycontext securitycontext = securitycontextholder.getcontext();

user user = (user)securitycontext.getauthentication().getprincipal(); //user是spring提供的

logaop:
private date visittime; //訪問時間

private class clazz; //當前正在訪問的class物件

private method method; //當前正在訪問的method物件

@autowired

private isyslogservice syslogserviceimpl; //service層物件,用於將訪問日誌儲存到資料庫

@autowired //在web.xml中配置乙個requestcontextlistener***,由spring容器來注入資料

//前置通知

@before("pc()")

public void dobeforeadvice(joinpoint jp) throws nosuchmethodexception else

method = clazz.getdeclaredmethod(methodname, classes);

}}

//最終通知

@after("pc()")

public void doafteradvice() }}

}}

}

syslog實體類:
private string id;

private date visittime;

private string visittimestr;

private string username;

private string ip;

private string url;

private long executiontime;

private string method;

Spring AOP 記錄日誌

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

spring aop簡單記錄

以spring aop的jdk實現為例,配置檔案如下 的物件 配置的advice或advisor advice advisor 1 targetproxy是乙個factorybean,getobject時產生 物件 2 物件被invoke時,把配置的advice或者advisor抽象成methodi...

spring aop學習記錄

aop 面向介面程式設計,也是面向多個物件程式設計。spring 5種通知 前置,後置,環繞,異常,引入通知。1.前置通知 繼承 org.springframework.aop.methodbeforeadvice 實現public void before method method,object ...