验证应用程序模块结构

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

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

验证包括以下规则:spring-doc.cadn.net.cn

Spring Modulith 可选择性地与 jMolecules ArchUnit 库集成,如果存在该库,将自动触发其领域驱动设计(DDD)和架构验证规则,相关描述见此处spring-doc.cadn.net.cn

处理检测到的违规行为

ApplicationModules.verify() 在检测到任何架构违规时会抛出异常。 您可以通过调用 ApplicationModules.detectViolations() 来访问这些违规信息以进行进一步处理,例如忽略某些违规。spring-doc.cadn.net.cn

ApplicationModules.of(…)
  .detectViolations()
  .filter(violation -> …)
  .throwIfPresent();

自定义验证

如上 所述,默认情况下,ApplicationModules.verify(…)….detectViolations(…) 都会根据类路径配置自动执行额外的验证。spring-doc.cadn.net.cn

要自定义这些、禁用它们或注册额外的验证,verify(…)detectVolations(…) 都需要一个 VerificationOptions 实例。spring-doc.cadn.net.cn

var hexagonal = JMoleculesArchitectureRules.ensureHexagonal(VerificationDepth.STRICT); (1)
var options = VerificationOptions.defaults().withAdditionalVerifications(hexagonal); (2)

ApplicationModules.of(…).verify(options); (3)
1 在严格模式下设置用于六边形架构的 jMolecules 架构验证。
2 创建一个 VerificationOptions 实例,用刚刚设置的验证替换默认验证。
3 使用刚刚配置的选项执行验证。