我翻閱了一些關於在Spring中創建應用程序的文章和教程,以獲取有關如何將獨立(而非Web)Spring應用程序構建到圖層中的信息。如何在Spring應用程序中構建圖層和職責?
情況 - 我的應用程序將處理一些數據並使用它進行一些計算。數據將被存儲並從不同的數據源中讀取(PostgreSQL和RESTful API)。
我有一個想法如何構建我的程序:
- 域對象(
com.example.domain
) - 簡單的POJO類,如產品,訂單,客戶等 - 服務層(
com.example.service
) - 這些類將處理業務邏輯,並將與控制器和DAO對象協作,並將實現一些接口(ProductManager,OrderManager ...)。 - DAO /存儲庫層(
com.example.repository
) - 接口(ProductDao,OrderDao)定義原始數據操作。這些接口將實現特定的數據源(PostgreSQLProductDao等)。
問題:
這是正確的劃分,對你有意義?
當我使用另一個DAO實現時,應該在不影響服務類的情況下完成此切換?我在問,因爲數據處理由於另一種數據結構將以不同的方式處理。例如,當我使用來自另一個項目實例的相同數據庫(PostgreSQL),並且數據以不同形式存儲時,我需要執行不同的計算(從DAO層a調用另一個方法,並使用數據執行一些其他操作)。應該在服務層還是在DAO層完成?我應該爲每個項目和數據源有更多的服務層實現嗎?
例如:在我們的PostgreSQL數據庫中有一些客戶,其中一些客戶沒有其行中的所有信息。所以對於這個數據庫,我需要在從數據源讀取客戶之後獲取這些缺失的信息。因爲從我的角度來看,DAO應該只做基本操作(比如CRUDL)我不確定這是否應該在DAO層或服務層完成。
我看了很多文章,但是我還沒有找到明確的答案來回答這些問題。謝謝。
對於獨立的應用程序,我強烈建議你看看[Spring Boot](http://projects.spring.io/spring-boot/)來引導應用程序和[Spring IO](http:// platform。spring.io/platform/)進行數據處理。避免像瘟疫一樣的所有XML。你的結構看起來很好。 –