[英]Is there a technical difference between the API/Service consumption of monolith & micro-service architecture?
[英]Technical architecture : Service layer or not?
我們有一個由少量應用程序組成的平台。
我們必須開發一個API,該API必須將與數據庫的所有交互都分解為因素。 在此API中,我們還將擁有XML格式的數據庫版本。 XML格式將僅由一個應用程序使用。
我們的應用程序是在經典的體系結構中開發的:dao-服務層-表示層。
DAO層將移入API。 在這一點上沒有問題。 在許多應用程序中,服務層只是表示層和導引層之間的網關,而沒有特定的業務代碼。
所以我的問題是:
需要幫忙 ! :p我迷路了...
僅供參考,我們在Java 1.6和Spring 3.1.1中。 DAO中的JDBC模板暫時。 我們正在尋找有關Spring數據jdbc的信息,以替換JDBC模板。 對此的任何建議都值得贊賞^^ [No Hibernate-JPA solution]
謝謝。
[編輯1]
換句話說,在應用程序和API中保留服務層是我擁有抽象層的一種方式。 如果我們必須修改數據庫結構,那么如果我們也可以直接在API的服務層中進行一些更改,那么也許不必編輯所有應用程序。
想象3種可能性:
您選擇什么解決方案?
[編輯2]
創建一個唯一的類來調用API有趣嗎? 就像在立面設計模式中一樣。
使用服務層實現目的:通過提供的每項服務使用一個或多個DAO來提供真實的服務(以及其他諸如管理事務,清理String
等之類的東西)。
如果您(與經驗豐富的同事一起)認為您不需要此服務層,則不要將其放入體系結構中。 但是請確保創建您的體系結構的概念證明(其中可能包含系統或部分系統的某種復雜功能的實現),以便稍后進行評估以證明您是否真的不需要這種層(或如果您這樣做)。
我的理解是,您需要使業務層與表示層脫鈎並重用,使多個客戶端應用程序使用同一業務實現。
在這種情況下,您需要在API中實現服務層。 一些優點:
在此API中,我們還將擁有XML格式的數據庫版本。 XML格式將僅由一個應用程序使用。
通過API提供此實現,如果需要,將來更多的客戶端應用程序將能夠使用它。
Spring遠程處理為此類設計提供了出色的工具(RMI,HTTP調用程序等)
在證明DAO的API方面,我沒有看到任何附加價值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.