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

全國咨詢/投訴熱線:400-618-4000

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

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

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

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


猜你喜歡:

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

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

怎么配置Spring容器中的Bean?

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

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





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



0 分享到:
和我們在線交談!