中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring框架中前置增強的用法

發布時間:2021-07-13 18:05:54 來源:億速云 閱讀:294 作者:chen 欄目:大數據

這篇文章主要講解了“Spring框架中前置增強的用法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Spring框架中前置增強的用法”吧!

在上一篇中我們已經通過了動態代理技術實現了簡單的AOP功能,但是如果我們細心觀察就會發現,通過上一篇中的方式實現有,幾點明顯需要改進的地方,它們分別是:

目標類所有的方法都添加了事物管理,而有時我們只需要在特殊的方法上添加事物即可。例如上一篇中的事例,我們只需要在有寫操作方法上添加事物即可,也就是register方法,而不需要在讀事物上添加事物也就是login方法。

我們通過了硬編碼的方法指定了橫切的邏輯,也就是在目標方法開始前和開始后添加了代碼。

我們手動創建了代理類,這樣在為不同的類創建代理時,就需要分別編寫相應的代碼,無法通用。

要想解決上述問題,解決的辦法就是使用spring為我們提供的增強,在其它文章中我們已經介紹過了增強就是添加到目標類特殊連接點的信息,并且spring為我們提供了的增強都在帶方位信息的,也就是在方法前、方法后等。所以我們可以很方便的使用增強來使我們需要添加事物的方法動態添加織入的功能。下面我們將演示,spring中為我們都提供了哪些增強。

  • 前置增強

顧名思義也就是在目標方法執行之前添加橫切的邏輯。我們通過下面的用例來演示一下前置增強的具體使用。

Spring框架中前置增強的用法

Spring框架中前置增強的用法

Spring框架中前置增強的用法

Spring框架中前置增強的用法

我們知道spring中的AOP功能底層也是通過JDK動態代理或者使用CGLib動態代理,那么我們上述代碼到底是通過哪種技術實現的呢?別著急我們看一下ProxyFactory類的底層實現。在ProxyFactory類中我們可以通過設置setInterfaces方法指定使用JDK動態代理。如果是對類進行代理,因為JDK代理不支持,所以ProxyFactory就會采用CGLib動態代理。我們還可以通過setOptimize方法來讓ProxyFactory啟動優化方式,這樣,即使是對接口進行代理,也會使用CGLib代理。

JDK動態代理

Spring框架中前置增強的用法

CGLib動態代理

Spring框架中前置增強的用法

下面我們通過sping配置文件的方式實現AOP動態代理功能。

Spring框架中前置增強的用法

Spring框架中前置增強的用法

Spring框架中前置增強的用法

下面我們看一下org.springframework.aop.framework.ProxyFactoryBean類的相關屬性說明:

  • target: 動態代理的目標對象

  • proxyInterfaces:動態代理所要實現的接口,如果是用CGLib代理時,可以不設置此屬性。也可以同時設置多個接口,當采用多個接口時接口與接口之間用用逗號分隔。

  • interceptorNames:具有和橫切邏輯的類。

  • singleton: 創建的代理對象是否是單例對象,默認為單例對象。

  • optimize: 是否啟用優化功能,當設置啟用時,spring采用CGLib動態代理,反之采用JDK動態代理。當設置為true時,可以不設置proxyInterfaces屬性。

  • proxyTargetClass: 是否對類進行代理,當設置為true時,則采用CGLib動態代理,反之采用JDK動態代理。

感謝各位的閱讀,以上就是“Spring框架中前置增強的用法”的內容了,經過本文的學習后,相信大家對Spring框架中前置增強的用法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

墨竹工卡县| 太白县| 马尔康县| 沙雅县| 衡水市| 萝北县| 仙游县| 栾川县| 海晏县| 马关县| 武穴市| 清河县| 嘉黎县| 贵州省| 乌兰浩特市| 论坛| 宾阳县| 长兴县| 黄冈市| 南木林县| 耿马| 文登市| 陆丰市| 温宿县| 河东区| 江山市| 莱芜市| 甘南县| 鄂托克前旗| 彭泽县| 田阳县| 永川市| 龙海市| 安图县| 都兰县| 岐山县| 于都县| 桑日县| 海盐县| 平果县| 读书|