下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第SpringBoot中Bean拷貝及工具類封裝的實現(xiàn)目錄一、使用SpringBeanUtils使用示例:二、Bean拷貝工具類封裝使用示例在我們SpringBoot項目的開發(fā)中,經常需要做對象的拷貝和轉化,例如我們需要把前端傳給我們的DTO對象轉化為POJO對象存到數(shù)據(jù)庫,返回前端數(shù)據(jù)時需要把POJO對象轉換為VO,這篇文章就講講SpringBoot中對象的拷貝及其工具類的封裝。
一、使用SpringBeanUtils
在Spring或SpringBoot項目中有為我們提供一個BeanUtils工具類。
使用方法如下,第一個參數(shù)是源對象,第二個參數(shù)是目標對象:
BeanUtils.copyProperties(Objectsource,Objecttarget);
還可以繼續(xù)傳入?yún)?shù)進行忽略參數(shù)拷貝:
BeanUtils.copyProperties(Objectsource,Objecttarget,String...ignoreProperties);
使用示例:
這里我們創(chuàng)建一個UserDto,User實體類,來實現(xiàn)前端傳入Dto對象轉為實體類對象
domain.entity.User:
importlombok.AllArgsConstructor;
importlombok.Data;
importlombok.NoArgsConstructor;
importjava.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
publicclassUser{
privateLongid;
privateStringusername;
privateIntegerage;
privateDatecreateTime;
privateDateupdateTime;
privateIntegerdeleted;
}
domain.dto.AddUserDto:
importlombok.AllArgsConstructor;
importlombok.Data;
importlombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
publicclassAddUserDto{
privateStringusername;
privateIntegerage;
}
實現(xiàn)Bean拷貝:
publicResponseResultaddUser(AddUserDtoaddUserDto){
//先新建一個user對象
Useruser=newUser();
//實現(xiàn)把addUserDto拷貝到user對象
BeanUtils.copyProperties(addUserDto,user);
userMapper.insert(user);
returnResponseResult.okResult();
}
二、Bean拷貝工具類封裝
因為基礎的BeanUtils在使用時拷貝非常不方便,還需要我們自己去創(chuàng)建新的User拷貝,對List集合的拷貝還需要我們自己去遍歷,這里我們封裝工具類來實現(xiàn)這些功能
importorg.springframework.beans.BeanUtils;
importjava.util.List;
importjava.util.stream.Collectors;
publicclassBeanCopyUtils{
privateBeanCopyUtils(){
publicstaticVVcopyBean(Objectsource,ClassVclazz){
//創(chuàng)建目標對象
Vresult=null;
try{
result=clazz.newInstance();
//實現(xiàn)屬性拷貝
BeanUtils.copyProperties(source,result);
}catch(Exceptione){
e.printStackTrace();
//返回
returnresult;
publicstaticO,VListVcopyBeanList(ListOlist,ClassVclazz){
returnlist.stream()
.map(o-copyBean(o,clazz))
.collect(Collectors.toList());
}
使用示例
普通Bean對象拷貝
publicResponseResultaddUser(AddUserDtoaddUserDto){
Useruser=BeanCopyUtils.copyBean(addUserDto,User.class);
userMapper.insert(user);
returnResponseResult.okResult();
}
List拷貝
publicResponseResultgetUser(IntegerpageNum,IntegerpageSize){
PageUseruserPage=newPage(pageNum,pageSize);
userMapper.selectPage(userPage,null);
ListUserVouserVos=BeanCopyUtils.copyBeanList(userPage.getR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 徐州文員面試題庫及答案解析(2025版)
- 中秋節(jié)作文800字5篇
- 2026年建筑工程項目管理題庫施工組織設計與實踐題
- 2026年項目管理流程優(yōu)化企業(yè)級項目管理題庫
- 2026年高素質翻譯能力培養(yǎng)語言類職業(yè)進階測試題目集
- 白云山公司首次覆蓋報告:25Q3報表端已企穩(wěn)修復沖擊圓滿完成“十四五”重點布局“十五五”
- 2026年新銳科技公司產品經理筆試題目
- 2026年中醫(yī)藥知識競賽試題及答案解析
- 保險業(yè)務操作流程標準化手冊
- 2025年能源設施維護與管理操作手冊
- 新疆烏魯木齊市2024-2025學年八年級(上)期末語文試卷(解析版)
- 2025年包頭鋼鐵職業(yè)技術學院單招職業(yè)技能考試題庫完整
- 蘋果電腦macOS效率手冊
- T-CHAS 20-3-7-1-2023 醫(yī)療機構藥事管理與藥學服務 第3-7-1 部分:藥學保障服務 重點藥品管理 高警示藥品
- 2022年版 義務教育《數(shù)學》課程標準
- 供貨保障方案及應急措施
- TOC基本課程講義學員版-王仕斌
- 初中語文新課程標準與解讀課件
- 中建通風與空調施工方案
- GB/T 3683-2023橡膠軟管及軟管組合件油基或水基流體適用的鋼絲編織增強液壓型規(guī)范
- 高考語言運用題型之長短句變換 學案(含答案)
評論
0/150
提交評論