Verifying Application Module Structure
-
仅允许明确定义的应用模块依赖关系(可选)。
-
可选择与 ArchUnit 集成,以自动执行特定于域驱动设计的验证规则。
我们可以通过调用`ApplicationModules`实例上的`….verify()`方法来验证我们的代码排列是否符合预期的约束:
-
Java
-
Kotlin
ApplicationModules.of(Application.class).verify();
ApplicationModules.of(Application::class).verify()
验证包括以下规则:
-
No cycles on the application module level - 模块之间的依赖关系必须形成有向无环图。
-
Efferent module access via API packages only - 所有引用内部应用程序模块包中类型的引用都会被拒绝。请参阅 Advanced Application Modules 了解详情。
-
Explicitly allowed application module dependencies only (可选) - 应用程序模块可以选择通过
@ApplicationModule(allowedDependencies = …)
定义允许的依赖项。如果配置了这些依赖项,则会拒绝对其他应用程序模块的依赖项。请参阅 Explicit Application Module Dependencies 和 Named Interfaces 了解详情。
Spring Modulith 可选择与 jMolecules ArchUnit 库集成,并在存在时自动触发其描述的 here 的领域驱动设计验证规则。