在 IntelliJ IDEA 中可视化您的 Java 应用程序架构,只需 2 分钟。
AppMap是一款开源的 IntelliJ IDEA 插件,它能帮助你改进代码,在你编写代码的过程中,逐个功能地展示代码的运行情况。它通过在编辑器中自动生成架构和代码行为的交互式地图来实现这一点。
这段 2 分半钟的视频展示了如何安装 AppMap 插件,如何配置它来映射你的 Java 代码,以及如何使用交互式图表来浏览你的代码。
它以春季宠物诊所为例进行说明。
以下是视频中演示的分步说明,或者您可以按照IntelliJ 快速入门的书面说明进行操作。
工作原理
AppMap 的工作原理是记录应用程序的代码执行路径,并在代码编辑器中直接以交互式图表的形式将其可视化。创建 AppMap 的一个好方法是记录单元测试、功能测试或集成测试用例。宠物诊所项目使用 JUnit 测试,本演示将以 JUnit 测试作为 AppMap 的来源。
安装 AppMap 插件
00:12从 JetBrains Marketplace 安装 AppMap 只需片刻:
- 打开 IntelliJ IDEA 首选项
- 选择“插件”,点击“市场”选项卡,然后搜索
AppMap - 点击按钮
Install,然后点击Restart IDE。
IDE 重启后,AppMap 插件已安装完毕,可以查看 AppMap。
配置宠物诊所录制所需的 AppMap
AppMap 框架使用一个名为 `AppMap` 的文件appmap.yml来确定要映射哪些代码。
00:20appmap.yml在项目根目录下创建一个新文件。您应该添加项目中的所有 Java 包。以下是本演示中使用的宠物诊所应用程序的示例:
name: PetClinic
packages:
- path: org.springframework.samples.petclinic
将 Java 录制代理添加到 Maven 配置中
要进行录制,请使用 AppMap Maven 插件运行测试,该插件会为 AppMap 录制配置 JVM。流行的jacoco代码覆盖率工具在 Maven 项目中也使用了类似的方法。
00:54将 AppMap 插件添加到build/pluginsPOM 文件的相应部分:
<!-- AppMap agent, default parameters -->
<plugin>
<groupId>com.appland</groupId>
<artifactId>appmap-maven-plugin</artifactId>
<executions>
<execution>
<phase>process-test-classes</phase>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
</plugin>
从测试中记录 AppMap
01:10运行 Maventest阶段时,AppMap 录制代理会将测试中的 AppMap 录制下来,并将它们保存到$buildDir/appmap项目的文件夹中,每个录制的测试用例对应一个 AppMap。
$ mvnw test
在 IntelliJ IDEA 中打开生成的 AppMap
01:17打开 AppMaps 视图 - 点击AppMaps用户界面中的选项卡。或者,按下CTRL or COMMAND + SHIFT + A,然后在搜索框中输入“AppMaps”,再从列表中选择“AppMaps 视图”。
从项目文件夹中找到的所有 AppMap 列表中选择一个 AppMap,或者搜索名称中包含特定短语的 AppMap,例如“创建所有者”。
双击列表中的 AppMap,即可打开交互式图表查看器。
与 AppMap 图交互
01:25在 AppMap 图中了解宠物诊所应用程序的工作原理。
- 首先要把握软件设计的整体框架,并在依赖关系图中查看所有代码组件——Web 服务端点、Java 包/类/函数和 SQL 命令及其相互依赖关系。
- 直接从图表中导航到类和函数的来源,这样您就无需手动查找它们了。
- 在执行跟踪中深入查看代码和 SQL 的执行详情。
01:45或者,你也可以采用自下而上的方法。假设你想知道哪些代码会修改数据库中的数据。
- 首先选择一个你感兴趣的 SQL 命令,例如 INSERT 命令。
- 在跟踪记录中查看它与其他调用之间的连接方式,然后回溯到其调用组件并打开其源文件。
- 查看它是如何与其他代码和 Web 服务端点连接的。
了解更多关于 AppMap 的信息
这只是 AppMap 功能的一个小演示。如需了解更多信息、分步说明和实用技巧,请查阅AppMap 文档。
致谢
感谢Petr和 Dan 为制作这段视频付出的辛勤努力!
文章来源:https://dev.to/appmap/visualize-the-architecture-of-your-java-app-in-intellij-idea-in-2-minutes-2dp7




