溫馨提示×

溫馨提示×

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

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

基于Spring AOP proxyTargetClass的行為表現(xiàn)有哪些

發(fā)布時間:2021-08-09 13:50:40 來源:億速云 閱讀:164 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下基于Spring AOP proxyTargetClass的行為表現(xiàn)有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

Spring AOP proxyTargetClass的行為

要點列表形式

proxyTargetClass

true

  • 目標對象實現(xiàn)了接口 – 使用CGLIB代理機制

  • 目標對象沒有接口(只有實現(xiàn)類) – 使用CGLIB代理機制

false

  • 目標對象實現(xiàn)了接口 – 使用JDK動態(tài)代理機制(代理所有實現(xiàn)了的接口)

  • 目標對象沒有接口(只有實現(xiàn)類) – 使用CGLIB代理機制

表格形式

proxyTargetClass目標對象特征代理效果
true目標對象實現(xiàn)了接口使用CGLIB代理機制
true目標對象沒有接口(只有實現(xiàn)類)使用CGLIB代理機制
false目標對象實現(xiàn)了接口使用JDK動態(tài)代理機制(代理所有實現(xiàn)了的接口)
false目標對象沒有接口(只有實現(xiàn)類)使用CGLIB代理機制

proxy-target-class="true" 與proxy-target-class="false"的區(qū)別

<tx:annotation-driven transaction-manager="transactionManager" 
                                       proxy-target-class="true"/>

注意:proxy-target-class屬性值決定是基于接口的還是基于類的代理被創(chuàng)建。

  • 如果proxy-target-class 屬性值被設(shè)置為true,那么基于類的代理將起作用(這時需要cglib庫)。

  • 如果proxy-target-class 屬值被設(shè)置為false或者這個屬性被省略,那么標準的JDK 基于接口的代理將起作用。

即使你未聲明 proxy-target-class="true" ,但運行類沒有繼承接口,spring也會自動使用CGLIB代理。

高版本spring自動根據(jù)運行類選擇 JDK 或 CGLIB 代理

以上是“基于Spring AOP proxyTargetClass的行為表現(xiàn)有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

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

AI