介绍
今天介绍一款插件,可以帮你调用spring容器里面的方法,并且可以执行脚本
Demo说明
本文基于maven项目开发,idea版本为2022.3以上,jdk为1.8
本文在Tools插件之上进行开发
本次demo将使用idea的一些组件优化
Tools插件说明
Tools插件是一个Idea插件,此插件提供统一Spi规范,极大的降低了idea插件的开发难度,并提供开发者模块,可以极大的为开发者开发此插件提供便利
Tools插件安装需要idea2022.3以上版本
- 插件下载连接:
https://download.csdn.net/download/qq_42413011/89702325
- sdk下载连接:
https://download.csdn.net/download/qq_42413011/89702330
- pojo-serializer插件:
https://gitee.com/myprofile/pojo-serializer
正文
安装
-
将插件下载,拖动到此面板,安装成功之后的效果
-
安装成功之后会在此出现一个mark,点击此mark会打开call this method面板
此mark会出现在静态函数和spring注解标识的类上
-
点击mark,会打开右侧面板
测试参数
- 启动项目
- 点击test函数左侧mark图标
- 参数设置值并点击运行
Debug测试
前置脚本测试
编写完毕需要点击保存
函数脚本:
只作用在这个函数
全局脚本:
所有项目所有模块都会生效
项目脚本:
只在这个项目所有模块生效
模块脚本:
只在这个项目所选模块生效
点击运行,成功打印出来
后置脚本测试
打印方法执行时长
直接执行脚本
方法脚本参数说明
ctx.attributes: Map<String,Object> 脚本上下文缓存数据,前置脚本后置脚本都可以访问,同一个对象,使用场景,例如: 打印方法执行时长
ctx.parameterMap: Map<String,Object> key: 参数名 value: 参数值,可在前置脚本中覆盖对应的参数
ctx.parameterTypes: Map<String,Class<?>> key: 参数名 value: 参数类型,可在前置脚本中修改对应参数名的参数类型,会影响获取的方法
ctx.conversionService:org.springframework.core.convert.ConversionService
ctx.context: org.springframework.context.ApplicationContext
ctx.env: org.springframework.core.env.Environment
ctx.classname: 反射调用的实例类型,前置脚本修改会影响调用实例
ctx.methodName 反射调用的方法,前置脚本修改会影响调用方法
ctx.error 后置脚本可获取,如执行出现异常,此参数可以获得异常
ctx.result 后置脚本可获取,此参数为方法执行结果,修改后会影响返回结果,如解密场景,可在后置脚本对结果解密,返回正确内容
脚本参数说明
context: org.springframework.context.ApplicationContext