1.動態代理的實現方式:繼承和聚合
2.聚合比繼承靈活,因爲聚合可以實現代理之間的組合,如日誌代理和時間代理可以靈活的組合。
3.動態編譯一段代碼的方法:(1)JDK6 Compiler API,jdk 6以前的沒有編譯的API
(2)CGLib,ASM :直接生成class二進制碼。
4.要動態編譯java,必須使用jdk中的jre,不能使用公用jre
5.反射:將class文件load到內存,然後生成一個類的對象。
6。AOP爲Aspect Oriented Programming的縮寫,意爲:面向方法編程,可以通過預編譯方式和運行期動態代理實現在不修改源代碼的情況下給程序動態統一添加功能的一種技術。AOP實際是GoF設計模式的延續,設計模式孜孜不倦追求的是調用者和被調用者之間的解耦,
AOP可以說也是這種目標的一種實現
7.動態代理的作用:
如測試某一段代碼的運行時間,權限,AOP,日誌代理,時間代理,Transaction事務代理等。
8.動態代理的好處:
(1)不用知道原來的代碼,就可以在原來的代碼前後加一定的邏輯。
(2)可以對任意的對象,任意的接口方法,實現任意的代理。