该版本仍在开发中,尚未被视为稳定。最新稳定版请使用Spring Modulith 2.0.0spring-doc.cadn.net.cn

验证应用模块结构

我们可以通过调用......验证()在我们的应用模块实例: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(...)......检测违规(...)根据类路径配置自动执行额外验证。spring-doc.cadn.net.cn

要自定义这些,可以禁用它们或注册额外的验证,两者兼顾验证(...)detectVolations(...)拿一个验证选项实例。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 创建一个验证选项实例用刚设置的验证替换默认验证。
3 使用刚配置的选项执行验证。