验证应用程序模块结构

我们可以通过调用实例上的方法来验证我们的代码安排是否符合预期的约束:….verify()ApplicationModulesspring-doc.cn

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

验证规则如下:spring-doc.cn

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

  • 仅通过 API 包进行不同的模块访问 — 所有对驻留在应用程序模块内部包中的类型的引用都将被拒绝。 有关详细信息,请参阅高级应用程序模块。 允许对 Open Application Modules 的内部进行依赖。spring-doc.cn

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

Spring Modulith 可以选择与 jMolecules ArchUnit 库集成,如果存在,则会自动触发此处描述的域驱动设计和架构验证规则。spring-doc.cn