Spring框架中動態(tài)代理的示例分析

這篇文章主要為大家展示了“Spring框架中動態(tài)代理的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Spring框架中動態(tài)代理的示例分析”這篇文章吧。

光澤網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、響應式網(wǎng)站設計等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)公司自2013年起到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選成都創(chuàng)新互聯(lián)公司

之前我們已經(jīng)介紹了AOP相關的知識,并且了解了spring是通過動態(tài)代理的方式實現(xiàn)AOP邏輯的。在spring中動態(tài)代理也分為兩種一種是JDK動態(tài)代理,一種是CGLib動態(tài)代理。下面我們看一下這兩種動態(tài)代理的區(qū)別。我們首先看一下在沒有動態(tài)代理時,添加事物的的邏輯處理。

Spring框架中動態(tài)代理的示例分析

Spring框架中動態(tài)代理的示例分析

Spring框架中動態(tài)代理的示例分析

Spring框架中動態(tài)代理的示例分析

Spring框架中動態(tài)代理的示例分析

雖然上述代碼已經(jīng)實現(xiàn)了我們的邏輯,但是在上一篇中我們已經(jīng)介紹過了,上述代碼的問題就是會有重復的有關事物的代碼添加到業(yè)務類中,這樣很不方便維護。解決的辦法就是通過AOP方式來解決,下面我們分別采用JDK動態(tài)代理和CGLib動態(tài)代理技術來解決上述問題。

  • JDK動態(tài)代理

Spring框架中動態(tài)代理的示例分析

Spring框架中動態(tài)代理的示例分析

Spring框架中動態(tài)代理的示例分析

Spring框架中動態(tài)代理的示例分析

Spring框架中動態(tài)代理的示例分析

上述代碼就是采用JDK動態(tài)代理技術實現(xiàn)AOP功能的,通過上述代碼實現(xiàn)AOP功能雖然比較簡單,但是有一個弊端就是JDK代理只能支持接口類型,也就是只能為接口提供動態(tài)代理功能,而CGLib動態(tài)代理則可以直接為類創(chuàng)建代理類。下面我們通過CGLib動態(tài)代理實現(xiàn)上述功能。

  • CGLib動態(tài)代理

Spring框架中動態(tài)代理的示例分析

Spring框架中動態(tài)代理的示例分析

Spring框架中動態(tài)代理的示例分析

  • JDK動態(tài)代理與CGLib動態(tài)代理的區(qū)別

  1. JDK動態(tài)代理只能為接口創(chuàng)建代理類,而CGLib動態(tài)代理而可以直接為類創(chuàng)建代理類。

  2. JDK動態(tài)代理創(chuàng)建代理類的速度要比CGLib動態(tài)代理創(chuàng)建代理類的速度要快。

  3. CGLib動態(tài)代理創(chuàng)建代理類的性能要比JDK動態(tài)代理創(chuàng)建代理類的性能要高。

所以在為單例對象創(chuàng)建代理類時,因為不需要頻繁的創(chuàng)建代理對象,所以優(yōu)先考慮用CGLib動態(tài)代理來創(chuàng)建,這樣該代理類的執(zhí)行時的性能比較高,反之則采用JDK動態(tài)代理創(chuàng)建代理類。

以上是“Spring框架中動態(tài)代理的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享標題:Spring框架中動態(tài)代理的示例分析
本文路徑:http://muchs.cn/article46/pdpdhg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設、營銷型網(wǎng)站建設、移動網(wǎng)站建設、網(wǎng)頁設計公司做網(wǎng)站、動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作