验证应用程序模块结构
我们可以通过在 ….verify()
方法上调用 ApplicationModules
实例来验证我们的代码排列是否符合预期约束。
-
Java
-
Kotlin
ApplicationModules.of(Application.class).verify();
ApplicationModules.of(Application::class).verify()
验证包括以下规则
-
应用程序模块级别上没有循环 - 模块之间的依赖关系必须形成有向无环图。
-
仅通过 API 包进行传出模块访问 - 所有对位于应用程序模块内部包中的类型的引用都会被拒绝。有关详细信息,请参阅 高级应用程序模块。允许依赖于 开放应用程序模块 的内部。
-
仅允许显式应用程序模块依赖关系(可选) - 应用程序模块可以选择通过
@ApplicationModule(allowedDependencies = …)
定义允许的依赖关系。如果配置了这些依赖关系,则会拒绝对其他应用程序模块的依赖关系。有关详细信息,请参阅 显式应用程序模块依赖关系 和 命名接口。
Spring Modulith 可选地与 jMolecules ArchUnit 库集成,如果存在,则会自动触发其 此处 描述的领域驱动设计验证规则。