java如何读取另一个工程的注解

洛风释 2016-06-20 10:28:51
背景:公司的项目,给出入参都定义了固定的类,然后对每一个参数都加了自定义注解。如下:
@ParamDesc(path="BUSI_INFO.RUN_CODE",cons=ConsType.CT001,type="String",len="2",desc="运行状态")
private String runCode;
然后项目启动后,通过一个外部程序,可以将所有服务的出入参文档自动打印出来。

但这个外部程序是一个同事用c#写的,离职了,没留下源码。现在该程序有点问题,但是无法改。
我想通过java把该程序重新实现一下,遇到问题如下:

获取一个自定义注解的方法,已经找度娘了解了。但是只能读取本工程jvm中注解。而之前的那个程序,是独立于任何一个工程,填好对应的项目名称:http://localhost:8080/工程名/rs/service/,就可以解析该工程的所有服务出入参了。
不过他这个程序也有个局限,只能读取本地的服务,不能读取公司服务器上的服务。

这一步,Java该如何实现?
...全文
227 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
howsun_zh 2016-06-22
  • 打赏
  • 举报
回复
Java是可以加载远程类的,但是Web服务通常都会禁止外部读取WEB-INF下的东东(包括classes目录下的类)。 以下假设可以通过http访问到工程下的WEB-INF/classes,演示下远程加载类(如何能访问到这个目录,可以有很多方法,例如通过Nginx或Apache配置一个静态资源路径到该目录):
URLClassLoader loader = new URLClassLoader(new URL[] { new URL("http://{httpserver}/classes/") });
Class c = loader.loadClass ("远程类名");
Method[] methods = c.getDeclaredMethods();
for(Method method : methods){
    Annotation[][] annotations = method.getParameterAnnotations();//这样就拿到参数的注解
}
洛风释 2016-06-22
  • 打赏
  • 举报
回复
java工程写的。
howsun_zh 2016-06-21
  • 打赏
  • 举报
回复
http://localhost:8080/工程名/rs/service/ 工程是用什么语言写的?

51,407

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧