介绍
今天介绍一款插件,可以帮你调用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