验证应用程序模块结构

我们可以通过在我们的 ApplicationModules 实例上调用 ….verify() 方法来验证我们的代码排列是否符合预期的约束

  • Java

  • Kotlin

ApplicationModules.of(Application.class).verify();
ApplicationModules.of(Application::class.java).verify()

验证包括以下规则

  • 应用程序模块级别上无循环依赖 — 模块之间的依赖关系必须形成有向无环图。

  • 仅通过 API 包访问下游模块 — 所有对应用程序模块内部包中的类型的引用都会被拒绝。 有关详细信息,请参见高级应用程序模块。 允许依赖于开放应用程序模块的内部组件。

  • 仅显式允许的应用程序模块依赖项(可选) — 应用程序模块可以选择通过 @ApplicationModule(allowedDependencies = …) 定义允许的依赖项。 如果配置了这些,则对其他应用程序模块的依赖将被拒绝。 有关详细信息,请参见显式应用程序模块依赖项命名接口

Spring Modulith 有选择地与 jMolecules ArchUnit 库集成,如果存在,则会自动触发其领域驱动设计和架构验证规则,这些规则在此处描述。