项目作者: ronghuaxueleng

项目描述 :
给java代码添加注解的javaagent
高级语言: Vue
项目地址: git://github.com/ronghuaxueleng/annotation-javaagent.git
创建时间: 2020-08-03T07:52:01Z
项目社区:https://github.com/ronghuaxueleng/annotation-javaagent

开源协议:Apache License 2.0

下载


简介

该模块主要是通过javaagent在程序启动时给java类动态添加注解

功能介绍

1、读取给定的配置文件,解析注解并添加到指定的类和方法上

2、在指定的目录中生成处理后的class文件

如何使用

在java启动时添加javaagent参数,指定本程序编译的jar包,并传递参数,如下所示:

  1. java -javaagent:E:/javaagent.jar=-f=E:/annos.json,-d=E:/test -jar xxx.jar

命令说明:

-javaagent参数后的jar的路径必须是绝对路径,否则可能找不到

-f 和-d是javaagent.jar的参数

​ -f:注解文件绝对路径

​ -d:保存处理后的class文件的绝对路径

​ -h:查看参数说明

annos.json文件格式如下:

  1. {
  2. "test": {
  3. "fullClassName": "io.github.ronghuaxueleng.test.Test",
  4. "annotations": [{
  5. "name": "io.swagger.annotations.Api",
  6. "attrs": [{ "attrValue": ["专病应用"], "attrName": "tags" }]
  7. }],
  8. "list": [{
  9. "method": "update",
  10. "annotations": [{
  11. "name": "io.swagger.annotations.ApiOperation",
  12. "attrs": [{ "attrValue": "更新", "attrName": "value" }]
  13. }]
  14. }]
  15. }
  16. }

其他请参考test下实例