通过javaagent的静态挂载来修改字节码,实现想实现的功能。采用微内核的架构。
- 编译 编译完成,生成两类jar包 核心jar包:byte-helper-core-1.0-SNAPSHOT-jar-with-dependencies.jar 插件包
- 创建目录 mkdir ${user_path}/agent/plugins ,其中user_path自定义
- 核心包放在${user_path}/agent/,插件包放在${user_path}/agent/plugins/
- java -javaagent:${user_path}/agent/byte-helper-core-1.0-SNAPSHOT-jar-with-dependencies.jar -jar app.jar
- 在byte-helper-plugin新增module
- 继承抽象类AbstractClassEnhancePluginDefine实现抽象方法
- 实现接口InstanceMethodsInterceptor
- 配置plugin.def
byte_helper_${插件名称}_${变量名}=${变量值}