Spring Boot下的一個DDD案例原始碼介紹

banq發表於2018-09-03
這是一個完整的基於Spring Boot/Spring Cloud的領域驅動設計原始碼案例:

ddd-by-examples/factory: The missing, complete exa

實現了CQRS命令查詢CRUD責任隔離:
1. 簡單的建立讀取更新刪除等功能透過利用CRUD框架公開。
2. 複雜命令在領域模型中表達,嵌入在六邊形架構

下圖是六角形架構,領域模型位於核心之處:

Spring Boot下的一個DDD案例原始碼介紹

上圖的元件如下:
1. AppService應用程式服務 - 提供領域模型的功能入口點,應用程式服務是RESTfull端點。

2. Domain Model 領域模型 - 遵循物件導向軟體建模,包含業務規則、不變性約束,計算和流程狀態變化。因此,六邊形架構可以儘可能簡潔明瞭 - 將純粹業務的基本複雜性與技術選擇的偶然複雜性分開,不受技術和約定的限制。

3. 埠 - 由領域模型定義的合同,表示來自外部資源(服務,資料庫或其他模型)的期望。使用IN-OUT引數宣告的介面埠,如儲存庫實現。

4. 介面卡 - 將技術(REST,資料庫,外部服務等)與領域模型整合在一起。

相關文章