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