CGLIB概述
来源:互联网 发布:淘宝店招尺寸950 编辑:程序博客网 时间:2024/06/06 04:27
1. 代理与被代理对象(目标对象)
代理可以视为目标对象的包装箱,任何对目标对象的访问,都必须通过代理完成,因而可以在代理上对访问目标对象的请求进行控制等。
JDK 1.3开始提供JDK动态代理机制,但是其应用受到一定的限制,即目标对象必须实现一个接口。
对于未实现接口的目标对象,就不能使用JDK提供的动态代理功能,而通过CGLIB库可以实现其动态代理。
2. CGLIB(ByteCode Generation Library)是一款Java代码生成库,可以在运行时扩展Java类并实现Java接口。
基于ASM的支持,CGLIB提供了一组高层API,用以生成和转换Java字节码,可用于AOP等的动态代理对象生成和对象的字段访问拦截。
1) CGLIB在应用中的架构模型
其中,ASM是一款小巧高效的字节码操作框架,用于转换和生成字节码。ASM可以视为基于事件的字节码分析器。ASM不仅仅可以用于操作Java字节码,而且可以用于操作脚本语言。
2) CGLIB的版本
时间
版本
说明
Apr. 2016
cglib 3.2.2
Bug fix
Feb. 2016
cglib 3.2.1
regression with Enhancer/CallbackFilter
Oct. 2015
cglib 3.2.0
Java8 compatibility
Dec. 2013
cglib 3.1
update to ASM 4.2
Jan. 2009
cglib 2.2.3
May. 2008
cglib 2.2
Oct. 2005
cglib 2.1.3
Jun. 2005
cglib 2.1.1
3) CGLIB的二进制发布包
CGLIB的二进制发布包有如下2种形式注意应用时的选择:
cglib-#.#_#.jar,只包含CGLIB类,可以被扩展,但是必须依赖ASM API扩展。
cglib-nodep-#.#_#.jar,包含了CGLIB类和ASM类,但是不可扩展。
参考文献:
旧官网 https://sourceforge.net/projects/cglib
新官网https://github.com/cglib/cglib
http://jnb.ociweb.com/jnb/jnbNov2005.html
- CGLIB概述
- cglib
- cglib
- cglib
- CGLIB
- cglib
- CGlib
- cglib
- cglib
- CGLIB
- cglib
- cglib
- CGLIB
- cglib 指南
- CGLIB模式
- CGLIB简介
- Java CGLIB
- CGlib 基础
- [概率DP] BZOJ 3036 绿豆蛙的归宿
- 游标详解
- ios不够看的了,开始准备学习安卓!!!
- 对象创建,内存布局,对象的访问定位
- Ubuntu16.04更新
- CGLIB概述
- android 如何获取当前运行的activity
- 人脸识别系统
- 【Leetcode】:268. Missing Number 问题 in JAVA
- 【OpenCV】找圆方法(阈值分割:大律算法otsu)
- API Guides——OpenGL ES
- 算法学习(六)链表问题总结,相交,成环
- [概率 树形DP] BZOJ 3566 [SHOI2014]概率充电器
- 7(进程环境)