Skip to content

Latest commit

 

History

History
65 lines (55 loc) · 5.12 KB

UPDATE.md

File metadata and controls

65 lines (55 loc) · 5.12 KB
Router6更新
引入项目概念
数据开始支持本地磁盘持久化
引入进度状态
Router5更新(一次扫描,不再需要重复手动更新)
重要更新,所有断点都是基于breakpoint
Router4更新(第四代:解放双手)
把最初的事件断点直接删除,不再等待断点
在考虑是否引入内存获取字节码反编译功能
Router3更新(第三代:不断完善)
去除基于调试事件跟踪定位,直接采用内存分析,不会导致页面产生严重的卡顿:(还是保存最初的事件断点,但是对象的分析不再根据事件分析)
提高了路由获取的广泛性,能够面对一些修改框架的产品,减少了遗漏路由(内存对象分析,已经不再关心框架每一个修改细节,除非产品把框架对象的字段修改)
继续支持Spring5/4/3
全面兼容Struts2的主流版本(2.1以上),struts1.x
全面兼容jersey1和jersey2
由于采用内存分析,解决Jetty各种Handle的组合问题
采用内存分析不再触发invoke的调试方式,提高了响应速度(invoke调试方式需要远程JVM做代码执行)
切换为最低JDK11的环境要求,不再需要tools.jar引入,采用JDK模块引入
Router-Router更新情况(第二代:补充完善分析的逻辑)
全面兼容Spring5/4/3(不兼容3.0.0单一版本)
全面支持Spring三种路由模式:注解路由,简单映射路由,bean名称路由(第一代只能支持注解解析
全面兼容Jetty的各Handle(默认的框架Handle,缺点:还是无法面对市场的千变万化的修改
全面兼容Tomcat7/8/9
新版本已经可以自动检索目标。不再需要手动干预(只是简单代替用户做HTTP请求,效果不佳)
更换Spring/Vue架构,不再出现操作系统的UI兼容性问题(基于B/S)
不再阻塞当前堆栈,真正实现无侵入式连接(老版会阻塞程序运行)
不再支持Resin中间件(遇到的比较少,不想挖坑)
新增功能:自动去除框架或中间的垃圾路由
采用JDK8
Router Killer(第一代:定义架构)
兼容Spring5
兼容jetty9(不兼容修改框架的产品)
兼容tomcat9/8(不兼容tomcat6/7)
兼容Resin(未经过大量产品代码审计的验证)
基于Java JDI 断点的事件分析(不适配修改框架的产品)
采用JDK8
采用JAVA GUI进行开发(不熟悉API的使用,不兼容Mac)
需要用户参与:手动触发某个框架的路由查询断点才能分析(极其不智能)
无法处理垃圾路由(即一些默认的路由:/error)

兼容的版本

Spring(框架) Tomcat(中间件) Jetty(中间件) Struts(框架) Jersey(我个人觉得是Rest插件)
5.0.0.RELEASE-5.3.20 9.0.1-9.0.70 11.0.0 2.5.x 2.0-2.39
4.0.0.RELEASE-4.3.30.RELEASE 8.0.1-8.5.81 10.0.0-10.0.10 2.3.x 1.x
3.1.0.RELEASE, 3.2.18.RELEASE 7.0.30-7.0.103 9.0.0.v20130308-9.4.50.v20221201 2.2.1
1.x

以上是测试的版本,未测试版本不确定能否解析

确定不兼容的组合情况:

    我并不打算支持tomcat6/7解析jersey/struts这样的古老组合,并且我不会支持Spring Mvc + jersey / struts。因为在我遇到的产品,根本没人这么干,jersey/struts更多的还是和中间件一起工作,而不是和spring Mvc。反向jersey/struts更多可能只是和Spring Core一起罢了,但是这在路由和映射类的获取上来说没有任何影响。