教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢(xún)/投訴熱線:400-618-4000

Spring AOP實(shí)現(xiàn)原理和常見(jiàn)代理的區(qū)別

更新時(shí)間:2020年11月18日16時(shí)12分 來(lái)源:傳智播客 瀏覽次數(shù):

Spring AOP的面向切面編程,是面向?qū)ο缶幊痰囊环N補(bǔ)充,用于處理系統(tǒng)中分布的各個(gè)模塊的橫切關(guān)注點(diǎn),比如說(shuō)事務(wù)管理、日志、緩存等。它是使用動(dòng)態(tài)代理實(shí)現(xiàn)的,在內(nèi)存中臨時(shí)為方法生成一個(gè)AOP對(duì)象,這個(gè)對(duì)象包含目標(biāo)對(duì)象的所有方法,在特定的切點(diǎn)做了增強(qiáng)處理,并回調(diào)原來(lái)的方法。

Spring AOP的動(dòng)態(tài)代理主要有兩種方式實(shí)現(xiàn),JDK動(dòng)態(tài)代理和cglib動(dòng)態(tài)代理。JDK動(dòng)態(tài)代理通過(guò)反射來(lái)接收被代理的類(lèi),但是被代理的類(lèi)必須實(shí)現(xiàn)接口,核心是InvocationHandler和Proxy類(lèi)。cglib動(dòng)態(tài)代理的類(lèi)一般是沒(méi)有實(shí)現(xiàn)接口的類(lèi),cglib是一個(gè)代碼生成的類(lèi)庫(kù),可以在運(yùn)行時(shí)動(dòng)態(tài)生成某個(gè)類(lèi)的子類(lèi),所以,CGLIB是通過(guò)繼承的方式做的動(dòng)態(tài)代理,因此如果某個(gè)類(lèi)被標(biāo)記為final,那么它是無(wú)法使用CGLIB做動(dòng)態(tài)代理的。


猜你喜歡:

Spring Boot如何實(shí)現(xiàn)微服務(wù)?

Spring Cloud是什么?怎么理解Spring Cloud?

怎么配置Spring容器中的Bean?

Spring Boot框架和傳統(tǒng)Spring框架相比有哪些優(yōu)勢(shì)?

傳智播客Java培訓(xùn)課程





下面是傳智教育公開(kāi)的幾套Java課程,您可以下載和在線觀看學(xué)習(xí),如果想深入學(xué)習(xí)java并想找到不錯(cuò)的java開(kāi)發(fā)相關(guān)工作,建議報(bào)班學(xué)習(xí)傳智教育Java高級(jí)軟件工程師課程獲取【Java視頻教程+資料】加播妞1605146928606_課程資料.jpg:435946716。



0 分享到:
和我們?cè)诰€交談!