同步操作将从 Kinkley/javaagentparent 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
JavaAgent实验
使用Maven的聚合功能创建的项目。
1、关键类MyAgent中必须有一个premain方法
2、resources\META-INF\MANIFEST.MF文件中必须指定agent类的全限定名
执行mvn clean package或者使用IDEA的图形界面执行package
打包后在target下会生成一个my-agent.jar包
-javaagent:agentdemo/target/my-agent.jar=first
如果在MyAgent类中打断点,会先运行到断点,才会运行AgenttestApplication的main方法。
打断点后,可以看到agent的运行逻辑定义在InstrumentationImpl的loadClassAndStartAgent方法中
运行结果:
分析:
com.umbrella.robot.agent.DurationTransformer中使用字节码修改类库javassist,
ClassFileTransformer 长期有效,在每一个类加载器加载 Class 的时候都会拦截。
对com.rong.kim.common.Lion中的runLion()方法进行了增强,在最后打印了方法执行时间。
http://jboss-javassist.github.io/javassist/tutorial/tutorial.html#read
必须先install parent,否则依赖父模块的子模块会打包失败
必须install 公共模块,否则依赖公共模块的子模块会打包失败
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。