此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Modulith 1.3.0! |
记录应用程序模块
通过ApplicationModules
可用于创建文档片段,以包含在用 Asciidoc 编写的开发人员文档中。
Spring Modulith 的Documenter
abstraction 可以生成两种不同类型的代码片段:
-
描述各个应用程序模块之间关系的 C4 和 UML 组件图
-
所谓的应用程序模块画布,关于模块及其中最相关元素(Spring bean、聚合根、发布和侦听的事件以及配置属性)的表格概述。
此外Documenter
可以生成一个聚合的 Asciidoc 文件,其中包含所有现有的组件图和画布。
生成应用程序模块 Component 图
文档片段可以通过将ApplicationModules
实例转换为Documenter
.
Documenter
-
Java
-
Kotlin
class DocumentationTests {
ApplicationModules modules = ApplicationModules.of(Application.class);
@Test
void writeDocumentationSnippets() {
new Documenter(modules)
.writeModulesAsPlantUml()
.writeIndividualModulesAsPlantUml();
}
}
class DocumentationTests {
private val modules = ApplicationModules.of(Application::class.java)
@Test
fun writeDocumentationSnippets() {
Documenter(modules)
.writeModulesAsPlantUml()
.writeIndividualModulesAsPlantUml()
}
}
第一次调用Documenter
将生成一个包含系统内所有模块的 C4 组件图。
第二次调用将创建其他图表,这些图表仅包含单个模块以及它们直接依赖于画布的模块。
生成应用程序模块画布
应用程序模块 Canvas 可以通过调用Documenter.writeModuleCanvases()
:
Documenter
-
Java
-
Kotlin
class DocumentationTests {
ApplicationModules modules = ApplicationModules.of(Application.class);
@Test
void writeDocumentationSnippets() {
new Documenter(modules)
.writeModuleCanvases();
}
}
class DocumentationTests {
private val modules = ApplicationModules.of(Application::class.java)
@Test
fun writeDocumentationSnippets() {
Documenter(modules)
.writeModuleCanvases()
}
}
默认情况下,文档将生成为spring-modulith-docs
文件夹中。
生成的 canvas 如下所示:
基础包 |
|
---|---|
弹簧组件 |
服务业
存储 库
事件侦听器
配置属性
别人
|
聚集根 |
|
已发布的事件 |
|
侦听的事件 |
|
性能 |
|
它由以下部分组成:
-
应用程序模块的基础包。
-
应用程序模块公开的 Spring bean,按构造型分组。— 换句话说,位于 API 包或任何命名接口包中的 bean。 这将检测由 jMolecules 架构抽象定义的组件构造型,以及标准的 Spring 构造型 Comments。
-
公开的聚合根 — 我们为其找到存储库或通过 jMolecules 显式声明为聚合的任何实体。
-
模块发布的应用程序事件 — 这些事件类型需要使用 jMolecules 进行划分
@DomainEvent
或实现其DomainEvent
接口。 -
模块监听的应用程序事件 — 派生自用 Spring 的
@EventListener
,@TransactionalEventListener
、jMolecules 的@DomainEventHandler
或 bean 实现ApplicationListener
. -
Configuration properties — 应用程序模块公开的 Spring Boot Configuration 属性。 需要使用
spring-boot-configuration-processor
artifact 提取附加到属性的元数据。
生成聚合文档
使用Documenter.writeDocumentation(…)
一all-docs.adoc
文件,链接所有生成的图表和应用程序模块画布。
我们可以通过调用Documenter.writeAggregatingDocument()
:
Documenter
-
Java
-
Kotlin
class DocumentationTests {
ApplicationModules modules = ApplicationModules.of(Application.class);
@Test
void writeDocumentationSnippets() {
new Documenter(modules)
.writeAggregatingDocument();
}
}
class DocumentationTests {
private val modules = ApplicationModules.of(Application::class.java)
@Test
fun writeDocumentationSnippets() {
Documenter(modules)
.writeAggregatingDocument()
}
}
聚合文档将包括任何现有的应用程序模块组件图和应用程序模块画布。 如果没有,则此方法不会生成输出文件。