spring aop實現介面請求記錄

2021-10-19 12:09:01 字數 2826 閱讀 8668

接到乙個需求,記錄每個使用者,在系統進行的修改、新增和刪除的操作記錄。

日誌記錄,與主業務沒有直接聯絡,不進行業務處理,故符合spring aop面向切面的程式設計思想。所以採用aop,來完成這一任務。

@aspect

@component

@slf4j

@order(value = 3)//專案啟動自動執行順序

public class thirdapirequestlogaspect;

public thirdapirequestlogaspect()

//切入點,該切入點下的方法都會執行該切面方法

@pointcut("execution(public * com.it.foundwater.controller.*.*(..))")

public void controllerinteceptor()

//環繞通知/環繞增強

@around("controllerinteceptor()")

public object around(proceedingjoinpoint joinpoint) throws throwable

//請求的方法名

string clazzname = joinpoint.gettarget().getclass().getname();

class<?> clazz = class.forname(clazzname);

string clazz******name = clazz.get******name();

string methodname = signature.getname();

syslog.setoperationdesc(clazz******name+'.'+methodname);

//請求的引數

string parameternames = ((methodsignature) joinpoint.getsignature()).getparameternames();

stringbuilder sb = null;

if (objects.nonnull(parameternames)) else if (param instanceof string) else if (param instanceof double) else if (param instanceof float) else if (param instanceof long) else if (param instanceof boolean) else if (param instanceof date) else if (param instanceof timestamp) else }}

}sb = sb == null ? new stringbuilder() : sb;

syslog.setparams(sb.tostring());

//設定ip位址

//get查詢請求不記錄

if("get".equals(request.getmethod()))

if(arrays.aslist(filtration).contains(syslog.getoperationdesc()))

syslog.setreturnresult(response);

syslog.settimemin(system.currenttimemillis() - start.gettime());

log.debug(getstring(syslog));

//儲存系統日誌

return o;

} catch (exception e)

return o; }

//各個專案獲取使用者資訊不同,根據自己專案進行修改

//過濾沒有token時的false情況

if(null!=userid)

//登入介面

if(stringutils.isnotempty(loginname))

} catch (exception e)

return user;

}public static string getstring(object o) else

}} catch (exception e)

}return sb.tostring();

}}

php curl 介面請求

通過url獲取頁面資訊 param string url 位址 return string 返回頁面資訊 function get url url 模擬post提交 param string url 位址 param string data 提交的資料 return string 返回結果 func...

RestClient(介面請求)

一 電子簽章 通過介面,傳入引數中有pdf檔案,和其他引數,在檔案上蓋上電子簽章。引入 通過nuget安裝restsharp,注意版本。備註 如果後面程式執行有錯,可以看是引用是否更改了web.config檔案 一般會更改newtonsoft.json的版本 電子簽章 蓋章 為1 表示報名確認函 為...

RestTemplate介面請求總結

使用getforentity呼叫介面,返回結果呼叫getstatuscode 方法取得httpstatus物件,然後就可以呼叫裡面的各種方法來滿足你的需求了 判斷介面返回是否為200 public static boolean ping catch exception e 二 什麼都不帶,將引數拼接...