Spring AOP基於配置檔案的面向方法的切面

2021-09-22 06:58:26 字數 2158 閱讀 3265

spring aop根據執行的時間點可以分為around、before和after幾種方式。

around為方法前後均執行

before為方法前執行

after為方法後執行

這裡只對around的方式進行介紹。本文只是摘錄相應的思路,許多輔助類和方法不一一給出。因此下述方法並不能正常執行。

定義忽略許可權檢查註解類

@documented

@target(elementtype.method)

@retention(retentionpolicy.runtime)

public @inte***ce ignorepermission

定義需要許可權檢查的類及方法

@restcontroller

public class testcontroller extends basecontroller

public responseentity deletetest(@requestparam(name = "accesstoken") string accesstoken)

/*** 帶了ignorepermission註解,不進行許可權檢查。 */

@ignorepermission

public responseentity gettestlist(@requestparam(name = "accesstoken") string accesstoken) }

定義切面aop類

public class permissionaspect

public void settokenname(string tokenname)

this.tokenname = tokenname; }

//proceedingjoinpoint只有around的方式才可用

//joinpoint則around、before和after均可用

public object execute(proceedingjoinpoint joinpoint) throws throwable

// 檢查 該使用者是否已經開通

// 從 request header 中獲取當前 token

string token = stringutils.isblank(request.getheader(tokenname)) ? request.getparameter("accesstoken") : request.getheader(tokenname);

string userid = tokenmanager.getuserid(token);

testbasic testbasic = basicservice.findbyuserid(userid);

try

if (testconstant.test_basic_is_pass_passed != testbasic.getispass()) else if (testconstant.test_basic_is_pass_deny == testbasic.getispass())

responseentity.failure(responseconstant.code_000, tips);

processing = false;

throw new exception(message); }

} catch (exception e) finally else }

} }配置檔案的配置

開啟切面支援

springmvc-context.xml中開啟如下配置

定義 bean

aop配置

... ...

注:上述**只是實現思路的摘錄,**不能直接執行。

基於配置檔案實現Spring AOP日誌管理

spring aop 是基於面向切面的程式設計,它能夠使得我們專注於我們的業務處理,將一些其他的東西由它來統一完成,程式的侵入性很小,所以被廣泛應用,至於實現原理我就不多說了,兩個字 下面說說標題所示的應用,記錄日誌,什麼時候記錄日誌,都記錄什麼?想想,可不就是在呼叫方法的時候寫日誌嘛,之前如果使用...

Spring AOP 通過配置檔案方式

1.寫乙個切面類 securitycontrol,其中有個方法 public class securitycontrol private void checksecurity joinpoint joinpoint object obj joinpoint.getargs for int i 0 i...

Spring AOP 基於XML檔案的配置

spring aop的配置可以基於註解,也可以基於xml檔案。前面幾篇都是使用註解的方式。下面介紹下使用xml檔案如何配置 使用的測試類和切面類都類似。只需要屬於aop的註解去掉即可。下面是aop的xml配置 1 xml version 1.0 encoding utf 8 2 beans xmln...