02 - Verificación de la estructura modular

Spring Modulith permite comprobar que la organización del código respeta los límites y dependencias previstos entre módulos.

La verificación detecta principalmente:

  • Ciclos entre módulos: el grafo de dependencias debe ser acíclico.
  • Acceso a paquetes internos: un módulo no debe referirse a tipos internos de otro; debe depender de sus paquetes API.
  • Dependencias no declaradas: si se configura allowedDependencies, solo se permiten las dependencias enumeradas.

Se puede ejecutar durante una prueba:

@Test
void moduleStructureIsValid() {
    ApplicationModules.of(Application.class).verify();
}

Si se detecta una infracción, verify() lanza una excepción. Para inspeccionar o filtrar las infracciones antes de fallar, se puede usar detectViolations():

ApplicationModules.of(Application.class)
        .detectViolations()
        .filter(violation -> /* criterio */ true)
        .throwIfPresent();

verify() y detectViolations() aceptan VerificationOptions para incorporar reglas adicionales o ajustar las comprobaciones automáticas. Spring Modulith también puede integrar reglas de jMolecules ArchUnit cuando la biblioteca está presente.

La idea es automatizar las restricciones arquitectónicas en pruebas para detectar dependencias indebidas al modificar el código.

  • clase/spring/modulith/verificacion.txt
  • Última modificación: 2026/10/04 09:55
  • por cesguiro