java - 如何构建 Java 类的元模型以通过代码分析生成服务图?

标签 java syntax graph model abstract-syntax-tree

我们有一个建立在 EJB 3.0 之上的 SOA 系统。我们正在手动维护一个“服务概览图”,它显示哪些业务服务调用哪些域服务。这很乏味,容易出错,没有人愿意这样做:-/

这就是为什么我正在寻找一种方法来自动生成这些图表。我认为代码分析是必经之路。

有人知道有什么工具可以很好地分析 java 代码吗?我想到了某种元模型,我可以查询它来构建图形。

类似于:

  1. 解析根目录 xyz 中的所有文件并为每个类构建元模型 a) 例如它使用了哪些其他类 b) 哪些类使用了这个类 c) 它实现了哪些接口(interface) d) 它的文件名是什么 e) 等等,我想你知道我的意思
  2. 给我一个你找到的所有文件的元模型(java/class)
  3. 生成图表(手工制作)
  4. 以“.dot”(有向图)文件格式输出图形
  5. 使用“点”工具将图形生成为 png、pdf、svg...

我们已经有了一个简单的解决方案,通过“grepping”文件....但这并不完美。

任何帮助将不胜感激

干杯 马塞尔

最佳答案

另一种方法是使用 ASM 做同样的事情在已编译的类文件或源代码本身上。

关于java - 如何构建 Java 类的元模型以通过代码分析生成服务图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7767165/

相关文章:

java - 传递要在 where/having 子句中匹配的列表

java - 任何用于图中子图(路径)匹配的库或建议的解决方案?

java - 以字符串格式获取日期哪个经济?每次都创建日期对象或通过日历对象使用日期实例

java - 方法重写时出现异常问题

php - 分配给未定义数组的子级别是否错误?

r - 组合取消分类因子变量

algorithm - 如何检查给定一组边是否形成无向循环及其复杂性?

phpgraph lib 不显示任何输出

java - 远程登录亚马逊

mysql - 如何在 mysql 的同一列上使用 LEFT 和 REPLACE?