记录应用程序模块
通过 ApplicationModules
创建的应用程序模块模型可用于创建文档片段,以包含在 Asciidoc 编写的开发人员文档中。Spring Modulith 的 Documenter
抽象可以生成两种不同类型的片段
-
C4 和 UML 组件图,描述各个应用程序模块之间的关系
-
所谓的“应用程序模块画布”,一个关于模块和其中最相关元素的表格概述(Spring bean、聚合根、发布和监听的事件以及配置属性)。
生成应用程序模块组件图
通过将 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)
@Test
fun writeDocumentationSnippets() {
Documenter(modules)
.writeModulesAsPlantUml()
.writeIndividualModulesAsPlantUml()
}
}
对 Documenter
的第一次调用将生成一个 C4 组件图,其中包含系统中的所有模块。
第二次调用将创建额外的图表,这些图表仅包含单个模块及其在画布上直接依赖的模块。
生成应用程序模块画布
可以通过调用 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)
@Test
fun writeDocumentationSnippets() {
Documenter(modules)
.writeModuleCanvases()
}
}
默认情况下,文档将生成到构建系统构建文件夹中的 spring-modulith-docs
文件夹中。生成的画布如下所示
基本包 |
|
---|---|
Spring 组件 |
服务
存储库
事件监听器
配置属性
其他
|
聚合根 |
|
发布的事件 |
|
监听的事件 |
|
属性 |
|
它包含以下部分
-
应用程序模块的基本包。
-
应用程序模块公开的 Spring Bean,按原型分组。 — 换句话说,位于 API 包或任何 命名接口包 中的 Bean。这将检测由 jMolecules 架构抽象 定义的组件原型,但也包括标准的 Spring 原型注解。
-
公开的聚合根 — 我们为其找到存储库或通过 jMolecules 显式声明为聚合的任何实体。
-
模块发布的应用程序事件 — 这些事件类型需要使用 jMolecules 的
@DomainEvent
进行标记,或实现其DomainEvent
接口。 -
模块监听的应用程序事件 — 从使用 Spring 的
@EventListener
、@TransactionalEventListener
、jMolecules 的@DomainEventHandler
注解的方法或实现ApplicationListener
的 Bean 中派生。 -
配置属性 — 应用程序模块公开的 Spring Boot 配置属性。需要使用
spring-boot-configuration-processor
工件来提取附加到属性的元数据。