spring aop 自定義註解實現操作日誌記錄

2021-09-02 16:10:07 字數 2043 閱讀 2378

1,spring配置檔案

2,日誌攔截類

public class logaspect catch (throwable e)finally 

return retval;

}private void insertopertlog(proceedingjoinpoint jp, stopwatch stopwatch) else}}

function fd = null;

operate md = null;

if(classd.isannotationpresent(function.class))

if(method.isannotationpresent(operate.class))

if(fd!=null)

if(md!=null)

useroperatlog.setparamdata(params);

useroperatlog.setcreatetime(dateutil.gettimestamp());

logger.info("業務處理"+",模組:["+(fd!=null?fd.modulename():"")+"],操作:["+(md!=null?md.value():"")+"],呼叫類名稱:["+classname+"],呼叫方法名稱:["+methodname+"],引數為:" + params + ";耗時" + stopwatch.gettotaltimemillis() + "毫秒");

useroperatlogservice.insertbyselective(useroperatlog);

logger.info("執行完畢*****==");

} }

3,自定義註解三個

功能模組註解

/**

* 每個類的功能描述

* @author zhangqh

* @date 2016-8-2 下午01:03:59

*/@retention(retentionpolicy.runtime)

@target(elementtype.type)

@documented

public @inte***ce function

操作方法註解

/**

* 方法描述

* @author zhangqh

* @date 2016-8-2 下午12:55:25

*/@target()

@retention(retentionpolicy.runtime)

@documented

public @inte***ce operate

不需要記錄日誌的註解

/**

* 免記錄日誌註解標識

* @author wjhu

* @date 2016-8-2 下午01:03:59

*/@retention(retentionpolicy.runtime)

@target()

@documented

public @inte***ce nolog

4,controller中記錄操作日誌的使用

/**

* @function註解為對應的操作日誌模組

* @author zhangqh

* */

@controller

@function(value ="測試模組",modulename = "測試模組",submodulename = "")

public class test

/*** 使用@nolog註解就不是記錄該方法的操作日誌了

*/@nolog

public void bb()

}

spring對非同步呼叫方法支援也比較好 配置也比較簡單,只需要要在配置檔案中加入

就可以了,然後使用的方法上加上@async就可以了

Spring AOP 結合自定義註解的使用

1,宣告自定義註解,這裡的key 為要攔截的方法中的方法體對應的變數名,可以參考第3點.2,建立乙個切面類,annatation 中的comment 為方法引數體中的註解對應的變數名 3,在要攔截的方法上加入定義好的註解,其中 comment使用的是spel表示式.spel表示式工具類 packag...

自定義註解 springAop實現引數的分組驗證

問題引入 在日常開發中免不了對傳入的引數進行校驗,例如更新資料的時候id不能為空,新增資料的時候某個元素不能為空等。我們不得不寫類似於下面的 public object createstudent student student return student public object update...

Spring Aop加自定義註解實現許可權管理

在專案中,spring aop 可以對類,方法的執行進行一些加工,本文使用spring aop 加自定義註解來實現許可權管理。思路 當乙個請求請求某個controller層的方法時,會被aop提前攔截處理,看該方法上指定註解的值該登入使用者是否有許可權訪問,有則放行,無則直接返回。核心 config...