文件化應用程式模組
透過 ApplicationModules
建立的應用程式模組模型可用於建立文件片段,以便納入以 Asciidoc 撰寫的開發人員文件。Spring Modulith 的 Documenter
抽象概念可以產生兩種不同種類的片段
-
描述個別應用程式模組之間關係的 C4 和 UML 元件圖
-
所謂的應用程式模組畫布,是以表格形式概述模組及其中最相關的元素(Spring beans、聚合根、已發布和監聽的事件,以及組態屬性)。
此外,Documenter
可以產生一個彙總 Asciidoc 檔案,其中包含所有現有的元件圖和畫布。
產生應用程式模組元件圖
文件片段可以透過將 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 元件圖,其中包含系統內的所有模組。
第二次呼叫將建立額外的圖表,這些圖表僅包含個別模組及其直接依賴的模組在畫布上。
產生應用程式模組畫布
應用程式模組畫布可以透過呼叫 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
資料夾。產生的畫布看起來像這樣
基礎套件 |
|
---|---|
Spring components |
服務
Repositories
事件監聽器
組態屬性
其他
|
聚合根 |
|
已發布事件 |
|
監聽的事件 |
|
屬性 |
|
它包含以下章節
-
應用程式模組的基礎套件。
-
應用程式模組公開的 Spring beans,依原型分組。— 換句話說,位於 API 套件或任何具名介面套件中的 beans。這將偵測由 jMolecules 架構抽象定義的元件原型,以及標準 Spring 原型註解。
-
公開的聚合根 — 我們為其找到儲存庫或明確宣告為透過 jMolecules 聚合的任何實體。
-
模組發布的應用程式事件 — 這些事件類型需要使用 jMolecules
@DomainEvent
標記或實作其DomainEvent
介面來劃分。 -
模組監聽的應用程式事件 — 從使用 Spring 的
@EventListener
、@TransactionalEventListener
、jMolecules 的@DomainEventHandler
註解的方法或實作ApplicationListener
的 beans 衍生而來。 -
組態屬性 — 應用程式模組公開的 Spring Boot 組態屬性。需要使用
spring-boot-configuration-processor
構件來擷取附加到屬性的中繼資料。
產生彙總文件
當使用 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()
}
}
彙總文件將包含任何現有的應用程式模組元件圖和應用程式模組畫布。如果沒有,則此方法將不會產生輸出檔案。