更新時(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對(duì)象,這個(gè)對(duì)象包含目標(biāo)對(duì)象的所有方法,在特定的切點(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 Boot框架和傳統(tǒng)Spring框架相比有哪些優(yōu)勢(shì)?
下面是傳智教育公開的幾套Java課程,您可以下載和在線觀看學(xué)習(xí),如果想深入學(xué)習(xí)java并想找到不錯(cuò)的java開發(fā)相關(guān)工作,建議報(bào)班學(xué)習(xí)傳智教育Java高級(jí)軟件工程師課程。獲取【Java視頻教程+資料】加播妞:435946716。
北京校區(qū)