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