Spring AOP 面向切面程式設計)

2022-03-30 00:42:08 字數 1455 閱讀 5099

aop能夠將那些與業務無關,卻為業務模組所共同呼叫的邏輯或責任(例如事務處理、日誌管理、許可權控制等)封裝起來,便於減少系統的重複**,降低模組間的耦合度,並有利於未來的可拓展性和可維護性。

簡單例子:在某個專案裡,非管理員不能對某些業務進行操作,**如下:

從上面的**我們可以看出這種方式達到了許可權驗證的功能,但是如果有100個方法的話,就會顯得冗餘,**不好維護,這是傳統的硬編碼方式

我們對**進行改進(以註解的方式)

1,新建乙個切面(aspect)

@pointcut是切入點,我需要切入那些類或者那些方法,它有很多種方式(@annotation()   execution()  @within()  @target()  this()  等等 , 常用的是@annotation() 

, execution()

2.註解

3.實現

現在**就變得簡潔了,那個方法需要進行驗證,我就加上註解就行

再來乙個日誌管理的簡單例子

使用joinpoint可以獲取一些引數資訊

通過面向切面程式設計,將公共**抽離出來,進行統一化的處理,更加有效提高**質量,以上只是一些再簡單不過的例子

Spring AOP 面向切面程式設計

spring aop aop aspect orient programming 也就是面向切面程式設計 可以這樣理解,物件導向程式設計 oop 是從靜態角度考慮程式結構,面向切面程式設計 aop 是從動態角度考慮程式執行過程。在日常生活中,會遇到各種各樣的中介機構,比如獵頭公司,律師事務所,婚姻介...

Spring AOP面向切面程式設計

最近在系統中需要實現使用者某些操作新增積分,希望實現對系統現有的 進行最小嵌入,因此使用spring aop的切面程式設計將很好實現該需求,達到最小耦合度。在spring aop中的通知都是針對方法層級進行通知,相對與struct中針對類層級通知,具有更好的靈活性。方法攔截 methodinterc...

Spring AOP面向切面程式設計

一.常用概念 原有功能 切點 pointcut 前置通知 在切點之前執行的功能,before advice 後置通知 在切點之後執行的功能,after advice 異常通知 如果切點執行過程 現異常,則觸發異常通知 throws advice 切面 所有功能的總稱 織入 把切面嵌入到原有功能的過程...