日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring Aop的概念

發布時間:2024/4/13 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring Aop的概念 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

aspect:一定要給spring去管理 抽象 aspectj->類

pointcut:切點表示連接點的集合 -------------------> 表

(我的理解:PointCut是JoinPoint的謂語,這是一個動作,主要是告訴通知連接點在哪里,切點表達式決定 JoinPoint 的數量)

Joinpoint:連接點 目標對象中的方法 ----------------> 記錄

(我的理解:JoinPoint是要關注和增強的方法,也就是我們要作用的點)

Weaving :把代理邏輯加入到目標對象上的過程叫做織入

target 目標對象 原始對象

aop Proxy 代理對象 包含了原始對象的代碼和增加后的代碼的那個對象

advice:通知 (位置 + logic)

?

?

advice通知類型:

Before 連接點執行之前,但是無法阻止連接點的正常執行,除非該段執行拋出異常

After 連接點正常執行之后,執行過程中正常執行返回退出,非異常退出

After throwing 執行拋出異常的時候

After (finally) 無論連接點是正常退出還是異常退出,都會執行

Around advice: 圍繞連接點執行,例如方法調用。這是最有用的切面方式。around通知可以在方法調用之前和之后執行自定義行為。它還負責選擇是繼續加入點還是通過返回自己的返回值或拋出異常來快速建議的方法執行。

?

?

Proceedingjoinpoint?和JoinPoint的區別:

Proceedingjoinpoint?繼承了JoinPoint,proceed()這個是aop代理鏈執行的方法。并擴充實現了proceed()方法,用于繼續執行連接點。JoinPoint僅能獲取相關參數,無法執行連接點。

JoinPoint的方法

1.java.lang.Object[] getArgs():獲取連接點方法運行時的入參列表;?

2.Signature getSignature() :獲取連接點的方法簽名對象;?

3.java.lang.Object getTarget() :獲取連接點所在的目標對象;?

4.java.lang.Object getThis() :獲取代理對象本身;

proceed()有重載,有個帶參數的方法,可以修改目標方法的的參數

?

Introductions

perthis

使用方式如下:

@Aspect("perthis(this(com.chenss.dao.IndexDaoImpl))")

要求:

1. AspectJ對象的注入類型為prototype

2. 目標對象也必須是prototype的

原因為:只有目標對象是原型模式的,每次getBean得到的對象才是不一樣的,由此針對每個對象就會產生新的切面對象,才能產生不同的切面結果。

?

總結

以上是生活随笔為你收集整理的spring Aop的概念的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。