验证应用程序模块结构

我们可以通过调用….verify()我们的方法ApplicationModules实例: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 库集成,如果存在,则会自动触发其域驱动设计和架构验证规则,请点击此处所述。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.LENIENT); (1)
var options = VerificationOptions.defaults().withAdditionalVerifications(hexagonal); (2)

ApplicationModules.of(…).verify(options); (3)
1 在宽松模式下设置 Hexagonal Architecture 的 jMolecules 架构验证。
2 创建一个VerificationOptions实例将默认验证替换为刚刚设置的验证。
3 使用刚刚配置的选项执行验证。