Spring學習筆記_4_Spring AOP

AOP概述

AOP(面向方面編程)是一種編程範式,一般是用與具有橫切邏輯的場合,如訪問控制、事務管理、性能檢測等,旨在通過允許橫切關注點的分離,提高模塊化。

在這裏插入圖片描述
我們可以把橫向的function提取到一個地方去,在我們使用的時候我們把它植入到相應的類中去執行。
方便代碼的修改,編寫業務邏輯時可以專心於核心業務。

AOP術語

  • 切面
  • 連接點
  • 切入點
  • 通知/增強處理
  • 目標對象
  • 代理對象
  • 織入
    面向切面編程主要關乎兩個問題,即在什麼位置執行什麼功能。

基於XML配置文件的AOP實現

使用AOP框架時,開發者需要做的主要工作是定義切入點和通知,通常採用XML配置文件或註解的方式,配置好切入點和增強處理的信息後,AOP框架會自動生成AOP代理。

前置通知

D:eclipse/spring-5
添加jar包
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
joinPoint.getArgs可以獲得browse的兩個參數
在這裏插入圖片描述
在這裏插入圖片描述

返回通知

返回通知是指在連接點正常執行後實施增強,不管是正常執行完成,還是拋出異常,都會執行返回通知中的內容。

實例

在上一個項目中做補充
在這裏插入圖片描述
在這裏插入圖片描述
其餘不變,運行結果:
在這裏插入圖片描述

異常通知

異常通知在連接點拋出異常後執行

實例

沒異常,先整出來個異常
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

環繞通知

環繞通知是圍繞在連接點前後,比如一個方法調用的前後,是最強大的通知類型,在方法調用前後自定義操作。環繞通知還需要負責決定是繼續處理joinpoint(調用 ProceedingJoinPoint的proceed方法還是中斷執行,

實例

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

基於@AspectJ註解的AOP實現

基於XML配置文件的AOP實現免不了在Spring配置文件中配置大量的信息,不僅配置麻煩,而且造成配置文件的臃腫。AspectJ框架爲AOP的實現提供了一套註解,用以取代Spring配置文件中爲實現AOP功能所配置的臃腫代碼。
關於AspectJ註解的說明如下

  • @Aspect:用於定義一個切面
  • @Pointcut:用於定義一個切入點
  • @Before:用於定義一個前置通知,相當於BeforeAdevice
  • @AfterReturning:用於定義一個後置通知,相當於AfterReturningAdvice.
  • @AfterThrowing:用於定義一個異常通知,相當於ThrowAdvice
  • @Around:用於定義一個環繞通知,相當於MethodInterceptor
  • @After:用於定義最終final通知,不管是否異常,該通知都會執行
實例

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章