没有合适的资源?快使用搜索试试~ 我知道了~
会返回一个:MethodVisitor的实现对象同时还有:FieldVisitor AnnotationVisitor等二:cong零生成class代码要对Ja
资源详情
资源评论
资源推荐
ASM 技术学习:
一:从已有的 class 中修改
(1)asm 是个生产者消费者的模型
ClassReader 产生事件 ClassVisiter 消费事件
例子:主要看 main 方法
MethodCounter.java
如果需要进一步理解其中的信息;会返回一个:MethodVisitor 的实现对象
同时还有:FieldVisitor AnnotationVisitor 等
二:cong 零生成 class 代码
要对 Java 字节代码有比较深入的了解
DrawingCodeGenerator.java
字节代码增强:
java.lang.instrument 提供了一种在运行时对类进行增强的途径:
例子代码:
TraceAgent.java
TraceTransformer.java
通过 jvm 的启动参数 启动这个增强代理
Javaagent:xxx.jar
META-INF 文件中需要表明代理类的相关信息(全限定名称)
例子:
MANIFEST.MF
增强被调用的过程:
在通过类加载器的 defineClass 或者是 Instrumentation 的 redefineClass 方法的时候,转换
器的 transform()会被调用,可以添加多个转换器,在转换的过程中,这些转换器会进行级联
(以上代码的实现是在类加载之前)
ai
- 粉丝: 55
- 资源: 315
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0