首頁 > 易卦

JAX-RS並不是我們的關注點

作者:由 小朱喜歡科技 發表于 易卦日期:2022-05-08

如何編輯多個頁首

JAX-RS只是處理應用程式和域模型的一種方式。JAX-RS在這裡並不重要,我們可以使用Restfulie或Node。js來完成同樣的事情。但無論哪種方式,不同的介面卡都會將輸入委託給同一個API。。我們應該如何看待右側的埠和介面卡?

JAX-RS並不是我們的關注點

我們可以將儲存庫的實現視為一個永續性介面卡,用於訪問先前儲存的聚合例項,或儲存新的聚合例項。如圖中的介面卡E、F和G所示,我們可以透過不同的方式實現儲存庫,例如關係資料庫、基於文件的儲存、分散式快取和記憶體儲存。

JAX-RS並不是我們的關注點

如果應用程式向外界傳送域事件訊息,我們將使用介面卡H來處理它。這個介面卡處理訊息輸出,而剛才提到的AMQP訊息介面卡處理訊息輸入,所以應該使用不同的埠。六邊形架構的一大優點是我們可以輕鬆開發用於測試的介面卡。

JAX-RS並不是我們的關注點

整個應用程式和域模型可以在沒有客戶端和儲存機制的情況下設計和開發。在測試過程中,我們可以很容易地替換ProductService而無需考慮它是否應該支援HTTP/REST、SOAP或訊息埠。任何測試客戶端都可以在使用者介面完成之前進行開發。在選擇持久化機制之前,我們可以在測試中使用記憶體資源庫來來模擬持久化。更多記憶體持久化實現細節請參考Repository(12)。

JAX-RS並不是我們的關注點

這樣,我們可以繼續在核心領域進行開發,而無需考慮支援的技術元件。如果您有一個嚴格分層的架構,那麼您應該考慮扁平化該架構並開始使用埠和介面卡。如果設計得當,內部六邊形——即應用程式和域模型——不會洩漏到外部區域,這也有助於形成清晰的應用程式邊界。

JAX-RS並不是我們的關注點

在外部區域,不同的介面卡可以支援自動化測試和真實的客戶端請求,以及儲存、訊息傳遞和其他輸出機制。當SaaSOvation的開發團隊考慮到六邊形架構的優勢時,他們決定從分層架構切換到六邊形架構。其實並不難,只是需要換個角度來看待和使用Spring框架。