大型的妥爾油DTO,項目一期工程為年處理2萬噸粗妥爾油減壓精餾生產(chǎn)線,工程投資1.2億元人民幣,一期工程已于2017年10月建成投產(chǎn),主要產(chǎn)品包括妥爾油松香、妥爾油脂肪酸和精制妥爾油,副產(chǎn)品有妥爾油瀝青和妥爾油輕油等。
值對象的主要特點(diǎn)是它們的相等性通常由其屬性決定,而不是由標(biāo)識符決定。在一些領(lǐng)域驅(qū)動設(shè)計(DDD)中,值對象用于表示概念上的值,例如日期范圍、貨幣金額等。值對象通常不具有行為,而僅僅是一組數(shù)據(jù)的容器??吹骄W(wǎng)上很多資料,都在將VO和DTO之間微妙的關(guān)系,近有個項目剛好用到很多VO和DTO之間的轉(zhuǎn)換調(diào)用,于是就想將自己的經(jīng)驗和理解寫下來,我會使用先分開理解,再說差異。
什么是DTO、VO、BO、PO、DO、POJOPOJO的定義是無規(guī)則簡單的對象,在日常的代碼分層中pojo會被分為VO、 PO、 DTO。通過各層POJO的使用,有助于提高代碼的可讀性和可維護(hù)性。概念看似簡單,但是想?yún)^(qū)分好或者理解好也不容易,本文簡單梳理一下。在Java開發(fā)中,VO對象一般和entity對象有點(diǎn)區(qū)別,entity對象中的字段與數(shù)據(jù)庫表中一一對應(yīng),而VO對象則跟視圖層有關(guān),視圖層需要哪些字段就設(shè)置哪些字段。
在ORM(對象關(guān)系映射)框架中,PO可以將Java對象映射到數(shù)據(jù)庫中的表,簡化了數(shù)據(jù)的存儲和持久化過程。是用于描述值的Java對象,通常是由一個或多個PO組成的。VO通常是用于在不同層之間傳遞數(shù)據(jù)的,例如將從數(shù)據(jù)庫中查詢出來的PO轉(zhuǎn)化成前臺可以直接使用的VO,或者將前臺傳入的VO轉(zhuǎn)化成后臺PO以進(jìn)行數(shù)據(jù)的持久化存儲。是用于描述業(yè)務(wù)邏輯的Java對象,通常是由對應(yīng)的多個PO、BO或DTO組成的。BO主要負(fù)責(zé)處理業(yè)務(wù)邏輯,可以看成是對PO進(jìn)行多層封裝后產(chǎn)生的對象,也可以是多個PO的組合。是用于數(shù)據(jù)傳輸?shù)腏ava對象,通常是由一個或多個PO、BO或DTO組成的。
本文檔提供了整體實現(xiàn)思路,具體過程,包括模板的定義、數(shù)據(jù)的注入、代碼的生成,以及遇到的問題和解決方案。需要自定義類,繼承于,重寫outputCustomFile方法,實現(xiàn)上述目的。主要介紹了java實現(xiàn)相同屬性名稱及相似類型的pojo、dto、vo等互轉(zhuǎn)操作,具有很好的參考價值,希望對大家有所幫助。近些年來,微服務(wù)變得越來越流行。
而這一切數(shù)據(jù)都應(yīng)從系統(tǒng)的數(shù)據(jù)庫中得到。數(shù)據(jù)庫中的數(shù)據(jù)不可能同時存儲并維護(hù)這一系列數(shù)據(jù)結(jié)構(gòu),因此在一個復(fù)雜的系統(tǒng)中,數(shù)據(jù)庫中的數(shù)據(jù)表示與系統(tǒng)中所傳輸?shù)臄?shù)據(jù)之間常常是不同的數(shù)據(jù)結(jié)構(gòu)。常見的情況則是將其分為兩類:一類用來訪問數(shù)據(jù)庫,在系統(tǒng)中表現(xiàn)數(shù)據(jù)庫中所記錄的數(shù)據(jù),叫MO,即Model Object;另一類用來在網(wǎng)絡(luò)中傳輸,叫DTO,即Data Transfer Object。在了解了我們?yōu)槭裁葱枰狣TO和MO等數(shù)據(jù)的不同表示后,就讓我們來看看這些數(shù)據(jù)表示在一個web服務(wù)中是如何工作的。先讓我們從簡單的web服務(wù)分層開始說起。業(yè)務(wù)邏輯層和表現(xiàn)層個部分。其中表現(xiàn)層是運(yùn)行在客戶端的,而其他兩個則運(yùn)行在服務(wù)端。