====== 06 - Documentar módulos de aplicación ======
Spring Modulith puede generar documentación a partir del modelo ''ApplicationModules'', para que los diagramas y las descripciones reflejen la estructura del código.
===== 1. Diagramas de componentes =====
''Documenter'' genera diagramas de los módulos y sus dependencias en formato **C4** o **UML**:
new Documenter(ApplicationModules.of(Application.class))
.writeModulesAsPlantUml()
.writeIndividualModulesAsPlantUml();
El primer método genera una vista global; el segundo, vistas por módulo con sus dependencias directas. Se puede seleccionar el estilo tradicional UML mediante ''DiagramOptions''.
===== 2. Fichas de módulo =====
''writeModuleCanvases()'' genera una ficha por módulo con información como:
* Paquete base y beans expuestos, agrupados por estereotipo.
* Raíces de agregado detectadas.
* Eventos publicados y escuchados.
* Propiedades de configuración del módulo.
La documentación se escribe por defecto en ''spring-modulith-docs'' dentro del directorio de compilación. La extracción de metadatos de propiedades requiere ''spring-boot-configuration-processor''.
===== 3. Documento agregador =====
''writeAggregatingDocument()'' genera ''all-docs.adoc'', que enlaza los diagramas y fichas ya creados. ''writeDocumentation()'' permite generar el conjunto de documentación.
La documentación generada muestra límites y dependencias observados; no sustituye la explicación de las decisiones de diseño de cada módulo.
===== Referencia =====
* [Documentación oficial: Documenting Application Modules](https://docs.spring.io/spring-modulith/reference/documentation.html) (Spring Modulith 2.1.1).