社区
Java EE
帖子详情
怎么样得到CGLIB生成的代理类
yangliang19811228
2007-09-04 08:28:36
最近学习Spring的AOP,发现里面大量用到了CGLIB,而CGLIB是运用JVM字节码自动生成代理类,这个类生成在内存里面,怎么才能把它的class文件下载到硬盘上,用反编译器生成码代码,了解一下CGLIB的原理.
...全文
335
1
打赏
收藏
怎么样得到CGLIB生成的代理类
最近学习Spring的AOP,发现里面大量用到了CGLIB,而CGLIB是运用JVM字节码自动生成代理类,这个类生成在内存里面,怎么才能把它的class文件下载到硬盘上,用反编译器生成码代码,了解一下CGLIB的原理.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
johnnie_deng
2012-05-02
打赏
举报
回复
System.setProperty(DebuggingClassWriter.DEBUG_LOCATION_PROPERTY, "类文件指定输出目录");
CGLIB
动态
代理
类
库
使用
CGLIB
扩展对象行为的原理是:对目标对象进行继承扩展,为其
生成
相应的子
类
,而子
类
可以通过覆写来扩展父
类
的行为,只要将横切逻辑的实现放到子
类
中,然后让系统使用扩展后的目标对象的子
类
,就可以达到与
代理
模式相同的效果了。
CGLIB
生成
动态
代理
类
简约,.java文件。
CGLIB
和 JDK
生成
动态
代理
类
的区别
NULL 博文链接:https://luyuanliang.iteye.com/blog/1137292
java
代理
机制 JDK动态
代理
和
cglib
代理
详解
java
代理
机制 JDK动态
代理
和
cglib
代理
详解
cglib
.jar下载
CGLIB
介绍与原理(部分节选自网络) 一、什么是
CGLIB
?
CGLIB
是一个功能强大,高性能的代码
生成
包。它为没有实现接口的
类
提供
代理
,为JDK的动态
代理
提供了很好的补充。通常可以使用Java的动态
代理
创建
代理
,但当要
代理
的
类
没有实现接口或者为了更好的性能,
CGLIB
是一个好的选择。 二、
CGLIB
原理
CGLIB
原理:动态
生成
一个要
代理
类
的子
类
,子
类
重写要
代理
的
类
的所有不是final的方法。在子
类
中采用方法拦截的技术拦截所有父
类
方法的调用,顺势织入横切逻辑。它比使用java反射的JDK动态
代理
要快。
CGLIB
底层:使用字节码处理框架ASM,来转换字节码并
生成
新的
类
。不鼓励直接使用ASM,因为它要求你必须对JVM内部结构包括class文件的格式和指令集都很熟悉。
CGLIB
缺点:对于final方法,无法进行
代理
。 三、
CGLIB
的应用 广泛的被许多AOP的框架使用,例如Spring AOP和dynaop。Hibernate使用
CGLIB
来
代理
单端single-ended(多对一和一对一)关联。 四、
CGLIB
的API 1、Jar包:
cglib
-nodep-2.2.jar:使用nodep包不需要关联asm的jar包,jar包内部包含asm的
类
.
cglib
-2.2.jar:使用此jar包需要关联asm的jar包,否则运行时报错.
Java EE
67,513
社区成员
225,880
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章