xiaopohou / any-door

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AnyDoor 任意门

目标:执行Spring项目任意对象的任意方法

执行项目的任意方法提出者:Lin ZiHao

适合场景

  • xxlJob
  • rpc入口
  • mq入口
  • 小改动的测试

功能展示

img

快速开始(结合插件)

1 安装插件

插件市场直接搜索 anydoor

img.png

2 启动项目

说明:一般情况下会主动填充运行进程的进程id(可在配置页面修改)

3 执行调用

  1. 找到想要执行的方法,右键弹出选择打开任意门(有对应的快捷键)

img.png

  1. 填写要调用的参数,并点击 ok 按钮

img.png

  1. 你将会发现当前方法被执行了!(可进行断点查看)

插件属性说明

img.png

核心包支持功能

  • 对象相关:
    • 对于是Spring注册的Bean,会通过上下文拿到对象(若有代理既是代理对象),执行当前方法
    • 对于非Spring注册的Bean,会通过反射创建对象,执行当前方法
  • 方法相关:
    • 支持同步或异步执行当前方法,默认异步
    • 支持私有方法
    • 打印响应结果
  • 参数相关:
    • 对给的参数进行序列化,支持json格式
    • 函数的参数支持lambda表达式入参,例如:Function的可以 A -> A
    • 时间支持:LocalDateTime传yyyy-MM-dd'T'HH:mm:ss、yyyy-MM-dd HH:mm:ss、yyyy-MM-dd

插件支持功能

  • 执行参数将会缓存
  • 可在任意地方重复上一次的调用
  • 配置页面可打印Idea插件的路径
  • 保留通过Http进行调用

地址

AnyDoorPlugin-idea插件中心

后续支持

详情见issues

发布版本

1.4.0 类加载隔离

  • 类加载隔离,和运行项目不做耦合,无依赖冲突问题
  • 支持没有 Spring 依赖的 Java 项目,插件运行无需使用方提供 Spring 依赖
  • 一个类多实例将会随机取一个实例
  • [fix]无参方法无记录上一次调用

About

License:Apache License 2.0


Languages

Language:Java 99.3%Language:Kotlin 0.7%