乙個ssi的專案(springmvc+mybatis),需要加上許可權驗證(非資料許可權),考慮使用aop來實現。
大致思路是使用自定義註解,在需要許可權控制的方法前(controller層)使用註解定義方法所需的許可權,然後使用aop攔截訪問的方法,在執行目標物件前通過反射取得目標物件所需的許可權,然後從當前session中取得登陸使用者,遍歷使用者所擁有的許可權,如果有許可權則繼續執行目標物件,如果沒有許可權則跳轉到錯誤提示頁面。
1、如下定義annotation:
@target(elementtype.method)
@retention(retentionpolicy.runtime)
public @inte***ce permission
2、定義切面類驗證許可權:
//宣告該類為乙個切面
@aspect
@component
public class myinterceptor //宣告乙個切入點,切入點的名稱其實是乙個方法
//環繞通知(特別適合做許可權系統)
@around("anymethod()")
public object dobasicprofiling(proceedingjoinpoint jp) throws throwable
} else }}
注:通過反射,可以獲得切入點方法上是否有許可權註解,對於有許可權註解的方法,需要進行許可權驗證。
3、配置aop,攔截controller中所有的方法。(
參考:
spring的aop的使用
使用 aspect標籤標註的類就是乙個切面類 aspect comment public class calculatorloggingaspect before標識這個方法是個前置通知,切點表示式表示執行arithmeticacalculator藉口的add 方法。execution com.sp...
關於spring的AOP使用
目前專案中用的比較多的是 aspectj註解的切面和xml配置的aop 表述 最近這個專案用的是xml配置的aop 配置乙個跟節點,下面配置乙個advisor或者aspect,裡面再配置乙個pointcut的正則表示執行的地點和advice什麼時候執行什麼事。概念陳述 1.通知 advice 定義了...
Spring的AOP簡單使用
強烈推薦乙個大神的人工智慧的教程 相關概念 1.連線點 joinpoint 類裡面哪些方法可以被增強,這些方法稱為連線點 2.切入點 在類裡可以有很多的方法被增強,實際增強的方法稱為切入點 3.通知 增強 增強的邏輯,稱為增強 4.切面 aspect 增強具體方法的過程稱為切面 把增強用到切入點的過...