1. 程式人生 > >CGLIB 和 JDK生成動態代理類的區別

CGLIB 和 JDK生成動態代理類的區別

AOP 使用的設計模式就是代理模式,是對IOC設計的補充。為了擴充套件性,往往會加上反射,動態生成位元組碼,生成代理類。 
這裡往往還會使用到DI,把代理的實現類通過依賴注入的方式,傳給代理工廠。 
關於生成動態代理類的方式有兩種:JDK和CGLIB。 
CGLIB,是一個開源工具。spring 和hibernate已經廣泛使用。 

關於AOP的概念解釋網上有很多。 
附件的內容是關於JDK和CGLIB動態生成代理工廠的例項。 

JDK動態代理和CGLIB位元組碼生成的區別? 
JDK動態代理只能對實現了介面的類生成代理,而不能針對類 
CGLIB是針對類實現代理,主要是對指定的類生成一個子類,覆蓋其中的方法 

因為是繼承,所以該類或方法最好不要宣告成final