DTO 實現 service 和 controller 之間值傳遞的操作
概念
DTO( Data Transfer Object):
數據傳輸對象,Service 或 Manager 向外傳輸的對象。
BO:business object 業務對象。主要作用是把業務邏輯封裝為一個對象。這個對象可以包括一個或多個其它的對象。比如一個簡歷,有教育經歷、工作經歷、社會關系等等。我們可以把教育經歷對應一個 PO,工作經歷對應一個 PO,社會關系對應一個 PO。建立一個對應簡歷的 BO 對象處理簡歷,每個 BO 包含這些 PO。這樣處理業務邏輯時,我們就可以針對 BO 去處理。
VO( View Object):
顯示層對象,通常是 Web 向模板渲染引擎層傳輸的對象。
POJO( Plain Ordinary Java Object):
在阿裡巴巴編程手冊中, POJO 專指隻有setter/getter/toString的簡單類,包括DO/DTO/BO/VO等。
DTO 實例代碼
/** * 封裝執行後結果 */ public class PersonInfoExecution { // 結果狀態 private int state; // 狀態標識 private String stateInfo; // 店鋪數量 private int count; // 操作的personInfo(增刪改店鋪的時候用) private PersonInfo personInfo; // 獲取的personInfo列表(查詢店鋪列表的時候用) private List<PersonInfo> personInfoList; public PersonInfoExecution() { } // 失敗的構造器 public PersonInfoExecution(PersonInfoStateEnum stateEnum) { this.state = stateEnum.getState(); this.stateInfo = stateEnum.getStateInfo(); } // 成功的構造器 public PersonInfoExecution(PersonInfoStateEnum stateEnum, PersonInfo personInfo) { this.state = stateEnum.getState(); this.stateInfo = stateEnum.getStateInfo(); this.personInfo = personInfo; } // 成功的構造器 public PersonInfoExecution(PersonInfoStateEnum stateEnum, List<PersonInfo> personInfoList) { this.state = stateEnum.getState(); this.stateInfo = stateEnum.getStateInfo(); this.personInfoList = personInfoList; } //get set...... }
補充:springBoot框架中幾個層(dto、dao、service、controller)之間的關系
可以這樣理解:
controller層—–> service層(接口—>接口實現類) —–> dao層的.mapper文件 —–> 和mapper層裡的.xml文件對應
Model層 是數據層:
TableName是對數據表實體的映射;
Criteria傳輸前臺數據
DTO 傳輸類間數據
Mapper層 放置SQL查詢XML文件
Dao層 相當於XML文件的抽象類
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- Java靈活使用枚舉表示一組字符串的操作
- springmvc分層領域模型概念詳解
- SpringBoot對不同Bean註解的區別和使用場景說明
- spring boot寫java web和接口
- 解決springboot報錯找不到自動註入的service問題