- 该工程旨在为哪些造数十分麻烦且会影响开发进度的伙伴提供一个临时的解决方案,为各种java方法提供造数能力
- 工程基于javassist开发(javaagent技术)
- 操作台基于 https://gitee.com/zhang-zhihan/SpringBoot_v2.git 开源脚手架项目搭建
agent-demo
├─sql 项目SQL语句以及文档
|
│─agent-core agent核心模块
|
|─agent-test agent测试类
|
├─agent-web 操作台
│
└─pom.xml maven.xml
- 导入sql文件夹里面的springbootv2.sql到数据库
- 修改agent-web工程中application-dev.yml指向自己的数据库地址
- 启动agent-web工程run SpringbootStart.java
- 打包agent-core,获取agent-core-1.0-SNAPSHOT-jar-with-dependencies.jar的物理路径
- 启动agent-test工程run AgentTestApplication
- 关闭agent-test工程,然后设定agent-test的vm参数,再重新启动
-javaagent:/Users/yxy/work/java/agent/agent-demo/agent-core/target/agent-core-1.0-SNAPSHOT-jar-with-dependencies.jar={\"className\":\"com.yxy.agent.controller\",\"codeHref\":\"http://127.0.0.1:8080/CreateDataExternalController/findParam2\",\"systemCode\":\"pft\"}
其中 className 指向的地址表示agent-test工程中要造数的类路径,多个路径以英文逗号隔开
codeHref 指向agent-web工程的地址
systemCode 要与agent-web中菜单配置的systemCode保持一致(默认为pft)
- 打开postman,调用接口
POST http://127.0.0.1:8181/test/v2/getUser2
{
"body":{
"idCardSuffix":"yyy",
"phoneCode":"kkk",
"openIdCode":"yy"
},
"header":{
"apiVersion":"1.0",
"msgSeq":"1112",
"msgTime":"2021-08-19 19:50:23",
"txChnlNo":"000"
}
}
- 返回值应该是
{
"code": 400,
"success": false,
"data": null,
"msg": "非法的phoneCode"
}
-
然后打开浏览器,输入地址 http://localhost:8080/admin/index,用户名密码为 create_data_user / create_data_user
- 接口名称 显示的就是刚才 第二步中的接口
- 点击新增
表示当传入的参数是
"idCardSuffix":"yyy"
则返回值为
{
"data": {
"wxNickName": "王五",
"wxOpenId": "yyyyyy",
"phoneNum": "158000000000",
"userName": "yyyyyy",
"userId": "xxxxxxx",
"wxHeadImg": "yyyyyy"
},
"code": 200,
"success": true,
"msg": "成功"
}
- 可以看到返回值已经变成我们设定的返回值了
- 将agent-test打成jar包运行时,直接添加-javaagent是无法启动,完整启动命令如下:
java -Xms512m -Xmx512m -javaagent:/Users/yxy/work/java/agent/yxy-agent-demo/agent-core/target/agent-core-1.0-SNAPSHOT-jar-with-dependencies.jar="{\"className\":\"com.yxy.cloud.service\",\"codeHref\":\"http://127.0.0.1:8080/CreateDataExternalController/findParam2\",\"systemCode\":\"pft\"}" -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -Dfile.encoding=UTF-8 -jar agent-test-0.0.1-SNAPSHOT.jar



