日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

dto 是只给前端需要的数据吗_DO、VO、DTO...XXOO,你弄明白了么

發布時間:2023/12/20 HTML 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dto 是只给前端需要的数据吗_DO、VO、DTO...XXOO,你弄明白了么 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

技術公眾號:Java In Mind(Java_In_Mind),歡迎關注!

背景

我相信,剛開始學習接觸企業代碼的時候,一定會發現,工程中充斥著各種XO:DO、VO、DTO、DAO,還有各種名詞:POJO,JavaBean,Domain等等,這些貌似看起來都一樣,又好像用在不同的地方,記得之前一個前端同事調侃說:“我不想學Java,各種OOO,腦殼疼!”,這里結合自己的理解對這幾個名詞做些介紹。

何為POJO

POJO(Plain Ordinary Java Object),即簡單Java對象,就是一個我們最常見的普通Java對象,這個概念是被大家叫出來的,它具有一些屬性,然后提供對應的getter和setter,如下:

public class Foo {

private String name;

private String type;

public String getName(){

return this.name;

}

public void setName(String name){

this.name = name;

}

public String getType(){

return this.Type;

}

public void setType(String type){

this.type = type;

}

}

何為JavaBean

JavaBean,可序列化的POJO,sun在早期有對其規范(JavaBeans Spec),它是Java中的可重用組件,主要規范約定如下:JavaBean為公共類,并且具有一個空構造函數

所有屬性為私有屬性,提供getter和setter,不應該有公共屬性

實現序列化接口:java.io.Serializable

JavaBean已經成為Java的一種規范,也是Java社區的共同語言,許多工具框架也是遵循JavaBean的規范的,例如,Spring的BeanUtils,一些Json工具都是基于JavaBean的規范來實現的,這些都是基于約定,所以也有人把JavaBean叫為可以持久化的POJO。

何為DO

DO(Domain Object),領域對象,也就是ORM框架中對應數據庫的對象,業務實體,例如,對現實世界中的用戶建模,抽象出來的DO可以叫為UserDO,通常情況下它用于與數據庫的數據交互,通常也是一個JavaBean。

何為PO

PO(Persistent Object),持久化對象,主要用于持久化層,與數據庫對應,通常也是ORM框架中的實體對象,例如,使用JPA時候的Entity與數據庫表做映射,通常是一個JavaBean。

何為DTO

DTO(Data Transfer Object),數據傳輸對象,顧名思義就是用于傳輸數據的對象,通常用于處于不同架構層次或者不同子系統之間的數據傳遞,或者用于外部接口參數傳遞,以便提供不同粒度不同信息的數據,以免造成困惑干擾,通常也是一個JavaBean。

何為VO

VO(Value Object),就是用于保存數據的對象;在提供給頁面使用的時候,也有人解釋為View Object,就是對應頁面展示數據的對象。

何為DAO

DAO(Data Access Object),數據訪問對象,與數據庫做交互的對象,提供不同的接口訪問數據庫來實現對數據庫的操作,而接口使用的數據交互通常就是PO或者DO,通過它可以使用面向對象的方式來與數據庫交互。

總結DO、PO、VO、DTO等其實都是一個JavaBean,只是應用的范圍不同,表示的意義不同,而這些不同是Java這么多年來形成的一種約定,這種習慣形成Java程序員之間一種共識

DO和PO大部分時間是一樣的,不過PO更傾向于有狀態的對象,例如,使用Hibernate的時候,通過DAO操作過的對象會被框架所持有,如果一旦對其操作,在Session關閉的時候會寫回數據庫,這個時候使用PO就要非常小心,特別是與其他業務層交互的時候,最好轉成DTO或者VO提供數據,不能把持久化對象暴露出去,不然可能會導致數據被修改

在使用這類對象的時候,我們還是要明白其意義,然后在合適的場景使用,畢竟這是Java形成的通用語言,想要讀懂他人代碼就要理解,想要他人能讀懂自己的代碼就要遵循

總結

以上是生活随笔為你收集整理的dto 是只给前端需要的数据吗_DO、VO、DTO...XXOO,你弄明白了么的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。