一团赏、概念
? ? ? ? 本篇主要介紹箕般,靜態(tài)代理,動(dòng)態(tài)代理舔清,cglib實(shí)現(xiàn)動(dòng)態(tài)代理。后續(xù)Spring AOP就是基于動(dòng)態(tài)代理實(shí)現(xiàn)的。
二校辩、靜態(tài)代理
? ? ? ? 類(lèi)似裝飾者模式翻默,增強(qiáng)原對(duì)象的某些方法。
三抒痒、java內(nèi)置動(dòng)態(tài)代理
優(yōu)點(diǎn):
????????不需要像靜態(tài)代理一樣被代理方法都要實(shí)現(xiàn)一遍幌绍,而只需要在回調(diào)函數(shù)中進(jìn)行處理就可以了,重復(fù)代碼只需編寫(xiě)一次。
缺點(diǎn):
????????java的動(dòng)態(tài)代理是通過(guò)代理者實(shí)現(xiàn)和被代理者相同的接口來(lái)保證兩者具有相同的方法的傀广,如果被代理者想要被代理的方法不屬于任何接口颁独,則生成的代理者自然無(wú)法具有這個(gè)方法,也就無(wú)法實(shí)現(xiàn)對(duì)該方法的代理主儡。
四奖唯、cglib實(shí)現(xiàn)動(dòng)態(tài)代理
有點(diǎn):
????????不需要實(shí)現(xiàn)接口了。
缺點(diǎn):
????????需要導(dǎo)入cglib包糜值。spring-core的包中已經(jīng)包含丰捷。
五、代碼實(shí)現(xiàn)
????????https://github.com/hailindai/SpringSample