DTO 實(shí)現(xiàn) service 和 controller 之間值傳遞的操作
概念
DTO( Data Transfer Object):
數(shù)據(jù)傳輸對象,Service 或 Manager 向外傳輸?shù)膶ο蟆?/p>
BO:business object 業(yè)務(wù)對象。主要作用是把業(yè)務(wù)邏輯封裝為一個(gè)對象。這個(gè)對象可以包括一個(gè)或多個(gè)其它的對象。比如一個(gè)簡歷,有教育經(jīng)歷、工作經(jīng)歷、社會(huì)關(guān)系等等。我們可以把教育經(jīng)歷對應(yīng)一個(gè) PO,工作經(jīng)歷對應(yīng)一個(gè) PO,社會(huì)關(guān)系對應(yīng)一個(gè) PO。建立一個(gè)對應(yīng)簡歷的 BO 對象處理簡歷,每個(gè) BO 包含這些 PO。這樣處理業(yè)務(wù)邏輯時(shí),我們就可以針對 BO 去處理。
VO( View Object):
顯示層對象,通常是 Web 向模板渲染引擎層傳輸?shù)膶ο蟆?/p>
POJO( Plain Ordinary Java Object):
在阿里巴巴編程手冊中, POJO 專指只有setter/getter/toString的簡單類,包括DO/DTO/BO/VO等。
DTO 實(shí)例代碼
/**
* 封裝執(zhí)行后結(jié)果
*/
public class PersonInfoExecution {
// 結(jié)果狀態(tài)
private int state;
// 狀態(tài)標(biāo)識
private String stateInfo;
// 店鋪數(shù)量
private int count;
// 操作的personInfo(增刪改店鋪的時(shí)候用)
private PersonInfo personInfo;
// 獲取的personInfo列表(查詢店鋪列表的時(shí)候用)
private List<PersonInfo> personInfoList;
public PersonInfoExecution() {
}
// 失敗的構(gòu)造器
public PersonInfoExecution(PersonInfoStateEnum stateEnum) {
this.state = stateEnum.getState();
this.stateInfo = stateEnum.getStateInfo();
}
// 成功的構(gòu)造器
public PersonInfoExecution(PersonInfoStateEnum stateEnum,
PersonInfo personInfo) {
this.state = stateEnum.getState();
this.stateInfo = stateEnum.getStateInfo();
this.personInfo = personInfo;
}
// 成功的構(gòu)造器
public PersonInfoExecution(PersonInfoStateEnum stateEnum,
List<PersonInfo> personInfoList) {
this.state = stateEnum.getState();
this.stateInfo = stateEnum.getStateInfo();
this.personInfoList = personInfoList;
}
//get set......
}
補(bǔ)充:springBoot框架中幾個(gè)層(dto、dao、service、controller)之間的關(guān)系
可以這樣理解:
controller層-----> service層(接口—>接口實(shí)現(xiàn)類) -----> dao層的.mapper文件 -----> 和mapper層里的.xml文件對應(yīng)
Model層 是數(shù)據(jù)層:
TableName是對數(shù)據(jù)表實(shí)體的映射;
Criteria傳輸前臺(tái)數(shù)據(jù)
DTO 傳輸類間數(shù)據(jù)
Mapper層 放置SQL查詢XML文件
Dao層 相當(dāng)于XML文件的抽象類






以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Java的優(yōu)先隊(duì)列PriorityQueue原理及實(shí)例分析
這篇文章主要介紹了Java的優(yōu)先隊(duì)列PriorityQueue原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
深入解析堆排序的算法思想及Java代碼的實(shí)現(xiàn)演示
堆排序基于二叉堆結(jié)構(gòu)即完全二叉樹,可利用最大堆和最小堆的組建方式來進(jìn)行排序,這里就來深入解析堆排序的算法思想及Java代碼的實(shí)現(xiàn)演示2016-06-06
SpringBoot操作spark處理hdfs文件的操作方法
本文介紹了如何使用Spring Boot操作Spark處理HDFS文件,包括導(dǎo)入依賴、配置Spark信息、編寫Controller和Service處理地鐵數(shù)據(jù)、運(yùn)行項(xiàng)目以及觀察Spark和HDFS的狀態(tài),感興趣的朋友跟隨小編一起看看吧2025-01-01
MyBatis-Plus?updateById更新不了空字符串或null的解決方法
本文主要介紹了MyBatis-Plus?updateById更新不了空字符串或null的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
spring boot加載freemarker模板路徑的方法
這篇文章主要介紹了spring boot加載freemarker模板路徑的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
SpringBoot使用自定義注解實(shí)現(xiàn)數(shù)據(jù)脫敏過程詳細(xì)解析
這篇文章主要介紹了SpringBoot自定義注解之脫敏注解詳解,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02

