TarsCloud/TarsJava

[feature]服务端注册接口时增加ASM获取Servant对应方法参数以兼容旧版本直接支持TarsJSON

diracccc opened this issue · 2 comments

背景

旧版本的TarsJava服务如果需要支持JSON则需要重新编译.tars文件或者手动加上@TarsMethodParameter注解,颇为不方便。

增强方案

对于服务端注册场景,尝试从Servant接口的实现类实例通过ASM来获取方法参数名,使用TarsJava老项目可以直接升级版本而不需要修改代码。

Tarsjava 1.7的版本和Master上面的版本不支持jdk1.8以下的版本所以不需要兼容 。需要parameter的时候 。开发者在编译参数或者 maven上指定 javac -parameters 即可

Tarsjava 1.7的版本和Master上面的版本不支持jdk1.8以下的版本所以不需要兼容 。需要parameter的时候 。开发者在编译参数或者 maven上指定 javac -parameters 即可

考虑的是现有servant接口方法中参数没有@TarsMethodParameter注解的兼容情况。
即使编译时javac -parameters,在没有重新编译.tars的文件生成带注解的方法时,现在TarsHelper中也没有获取paramName的逻辑。
毕竟对于现有服务重新编译一次的工作量和风险还是比直接更改依赖版本号要简单。