驗證應用程式模組結構

我們可以透過呼叫 ApplicationModules 例項上的 ….verify() 方法來驗證我們的程式碼結構是否符合預期約束

  • Java

  • Kotlin

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

驗證包括以下規則

  • 應用模組級別無迴圈 — 模組之間的依賴關係必須形成有向無環圖。

  • 僅透過 API 包進行出站模組訪問 — 所有對位於應用模組內部包中的型別的引用都將被拒絕。有關詳細資訊,請參閱高階應用模組。允許對開放應用模組內部的依賴。

  • 僅顯式允許的應用模組依賴 (可選) — 應用模組可以透過 @ApplicationModule(allowedDependencies = …) 可選地定義允許的依賴。如果配置了這些依賴,則對其他應用模組的依賴將被拒絕。有關詳細資訊,請參閱顯式應用模組依賴命名介面

Spring Modulith 可選地與 jMolecules ArchUnit 庫整合,如果存在,則自動觸發此處描述的領域驅動設計和架構驗證規則。

處理檢測到的違規

如果檢測到任何架構違規,ApplicationModules.verify() 將丟擲異常。您可以透過呼叫 ApplicationModules.detectViolations() 來訪問這些違規以便進一步處理,例如忽略某些違規。

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

自定義驗證

上文所述,預設情況下,ApplicationModules.verify(…)….detectViolations(…) 都會根據類路徑配置自動執行額外的驗證。

要自定義、停用或註冊額外的驗證,verify(…)detectVolations(…) 都接受一個 VerificationOptions 例項。

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

ApplicationModules.of(…).verify(options); (3)
1 在嚴格模式下為六邊形架構設定 jMolecules 架構驗證。
2 建立一個 VerificationOptions 例項,用剛剛設定的驗證替換預設驗證。
3 使用剛剛配置的選項執行驗證。
© . This site is unofficial and not affiliated with VMware.