我的應用程序基於典型的三層體系結構,目標是創建一個SpringMVC站點和一個Spring Batch解決方案,用於提供和維護我們的數據庫產品和庫存,其中速度是一個非常重要的因素。DTO,DAO或服務層?
我使用Spring的JdbcTemplate來管理遺留數據庫。我的一些表格包含很多不使用的列,並且由於某些字段(我們甚至不需要映射的斑點)的大小,檢索整行已經顯示出負面影響,所以我創建了一些與列我想要檢索,如:
- 產品 - 包含一個1:與存儲在數據庫中的字段1的關係。
- ProductDetailsView - 包含ID,名稱,價格,描述,庫存。
- ProductListItemView - Id,Price,name,stock。
DAO層將這些bean返回到服務層。據我所知創建DTO揭露它在我的服務接口產品可能是有意義的,但是,
1)什麼ProductDetailsView和ProductListItemView?
2)我應該從這些'視圖'或'投影'到具有相同屬性的DTO進行1:1映射嗎?爲什麼?
3)無論如何,你會在哪裏放置JSR-303註釋來驗證網絡的輸入?
您好,感謝您真正有用的答案,真的很感激它。 在我們使用DAO中檢索到的結果作爲中間DTO的情況下,我們需要服務層中的特定DTO(假設我們需要在服務層中添加一些計算的字段到實體的這些縮小版本中的一個),我們將在哪裏放置以及如何在項目中命名這兩種類型的DTO? 一些例子我能想到的現在: 'org.company.project.catalog.model.view.ProductListItemView' 'org.company.project.catalog.dto.ProductListItemDto' 'org.company.project。 common.dto.ProductListItemDto' – Computist
如果你是我,我使用POJO將我需要的服務層(存儲計算值)的所有屬性+我從數據庫中檢索的屬性,我將完全用它來調用它model.jdbc包中的數據庫表的名稱。我將發送給視圖的DTO使用第一個POJO值來將所需值移動到表示層,並且在此DTO中定義json註釋或視圖註釋,我將把這個DTO放入應用程序模塊中的dto文件夾中包 – Koitoer