以上代碼分別生成了
createJdkProxy:
JdkProxy class:$Proxy
callJdkProxy:
createCglibProxy:
CglibProxy class:$javatuning
callCglibProxy:
createJavassistDynProxy:
JavassistDynProxy class:javatuning
callJavassistDynProxy:
createJavassistBytecodeDynamicProxy:
JavassistBytecodeDynamicProxy class:javatuning
callJavassistBytecodeDynamicProxy:
可以看到
注意
用代理模式實現延遲加載的一個經典應用就在Hibernate框架中
假定有用戶模型
public class User implements java
private Integer id;
private String name;
private int age;
//省略getter和setter
使用以下代碼
public static void main(String[] args) throws SecurityException
NoSuchFieldException
IllegalArgumentException
IllegalAccessException {
//從數據庫載入ID為
User u=(User)HibernateSessionFactory
//打印類名稱
System
//打印父類名稱
System
getName())
//實現的所有接口
Class[] ins=u
for(Class cls:ins){
System
}
System
}
返回目錄
編輯推薦
Java程序設計培訓視頻教程
J
J
Visual C++音頻/視頻技術開發與實戰
Oracle索引技術
ORACLE
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27829.html