日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java編寫的實體返回VO工具

瀏覽:22日期:2022-08-12 17:48:01

好久不見 最近些許有點懶惰 程序員嘛 每個月總會有幾天的 你懂得

那最近發現好的代碼寫出來真的會讓人有種賞心悅目的存在 相反就會有一種想掐死寫代碼的那個人

所以我最近寫了一個小工具 就是實體轉換VO對象的一個小工具 說到這里 如果你的第一反應是 Spring的BeanUtils 那說明你肯定也有遇到過跟我一樣的問題

那具體是怎么做? (不考慮性能的情況下) 等下分析

先看下如果正常返回VO我們需要怎么去操作?

現在有一個用戶實體

import lombok.Data;/** * 用戶實體 * * @author 是小張啊 * @since 2021-05-06 */@Datapublic class User { /** * 用戶id */ private String id; /** * 用戶名稱(賬號) */ private String name; /** * 密碼(不加密) */ private String password;}

現在需要返回一個VO的對象 即

import lombok.Data;/** * 用戶vo對象 * @author 是小張啊 * @since 2021-05-06 */@Datapublic class UserVo { /** * 用戶id */ private String id; /** * 用戶名稱(賬號) */ private String name;}

可以這樣處理

import org.springframework.beans.BeanUtils;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;/** * @author 是小張啊 * @since 2021-05-06 */@RestControllerpublic class UserController { /** * 查詢用戶 * @return */ @GetMapping('/select') public UserVo select() {User user = new User();user.setId(1);user.setName('是小張啊');UserVo userVo = new UserVo();BeanUtils.copyProperties(user, userVo);return userVo; }}

這樣是沒有問題的 不談性能 這樣做是非常穩的

現在有這樣的一個需求 需要返回一個 List<UserVo> 如果你能想到用 java8的lambda表達式的去使用Spring的BeanUtils 那也是不錯的具體實現就是

import org.springframework.beans.BeanUtils;import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList;import java.util.List;import java.util.stream.Collectors;/** * @author 是小張啊 * @since 2021-05-06 */@RestControllerpublic class UserController { /** * 查詢用戶 * @return */ public List<UserVo> select() {// 初始化數據User user1 = new User();user1.setId(1);user1.setName('是小張啊');User user2 = new User();user2.setId(1);user2.setName('是小張啊');List<User> users = new ArrayList<>();users.add(user1);users.add(user2);// List<entity> -> List<vo>List<UserVo> userVos = users.stream().map(user -> { UserVo userVo = new UserVo(); BeanUtils.copyProperties(user, userVo); return userVo;}).collect(Collectors.toList());return userVos; }}

這其實也挺不錯的 只是每次都這樣寫 屬實不美觀 如果能提取公共方法去調用就太舒服了 所以這個方法也是根據 BeanUtils去優化這個工具

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.ArrayList;import java.util.List;import java.util.stream.Collectors;/** * Bean 工具類 * @author 是小張啊 * @since 2021-05-06 */@Slf4jpublic class Utils extends BeanUtils { /** * 將實體批量轉換成 vo對象 * 注:當前只針對 List * * @param source 實體集合 * @param clazz 需要批量轉換成的對象 * @param <T> * @param <S> * @return */ @SneakyThrows public static <T, S> List<T> conversionVo(List<S> source, Class<T> clazz) {return source.stream().map(resources -> { T t = null; try {// 利用反射 創建一個新的實例t = clazz.newInstance();BeanUtils.copyProperties(resources, t); } catch (InstantiationException e) {log.info('{}實例化失敗', clazz); } catch (IllegalAccessException e) {log.info('{}不可訪問', clazz); } return t;}).collect(Collectors.toList()); }}

這樣就很方便 只需要去調用即可

import top.lzmvlog.common.Utils;import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList;import java.util.List;/** * @author 是小張啊 * @since 2021-05-06 */@RestControllerpublic class UserController { /** * 查詢用戶 * @return */ public List<UserVo> select() {// 初始化數據User user1 = new User();user1.setId(1);user1.setName('是小張啊');User user2 = new User();user2.setId(1);user2.setName('是小張啊');List<User> users = new ArrayList<>();users.add(user1);users.add(user2);List<UserVo> userVos = Utils.conversionVo(users, UserVo.class);return userVos; }}

BeanUtils 是有局限性的 你必須保證 實體的字段值和返回的VO字段值是一樣的

代碼寫到最后 其實就是一個不斷優化的過程 領導來了 不能多說 得繼續搬磚去了

以上就是Java編寫的實體返回VO工具的詳細內容,更多關于Java 實體返回VO工具的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
免费观看在线综合| 伊人久久国产| 亚洲天堂久久| 成人欧美一区二区三区的电影| 国产精品乱战久久久| 青青草国产成人99久久| 日韩在线观看中文字幕| 亚洲欧美日本国产| 欧美日韩一区二区三区不卡视频 | 久久精品99久久久| 日韩高清三区| 国产精品日韩精品中文字幕| 国产精品视频首页| 精品国产亚洲日本| 亚洲夜间福利| 亚洲精品第一| 牛牛精品成人免费视频| 国产91在线播放精品| 午夜av一区| 一区二区电影在线观看| 国产精品一区免费在线| 日韩国产欧美一区二区| 一区二区三区国产在线| 国产精品大片| 欧美日韩一二三四| 青青草精品视频| 久久国产免费| 7777精品| 国产亚洲在线| 精品视频一区二区三区四区五区 | 精品久久不卡| 亚洲激情中文在线| 国产精品2区| 免费看的黄色欧美网站| 免费在线成人| 婷婷综合在线| 国产 日韩 欧美 综合 一区 | 99riav1国产精品视频| 久久精品免视看国产成人| 久久av一区| 久久理论电影| www.51av欧美视频| 国产精品一区二区精品| 香蕉久久久久久久av网站| 毛片在线网站| 久久精品伊人| 日韩av不卡一区二区| 久久精品亚洲人成影院 | 国产精品一区二区精品视频观看 | 国产香蕉精品| 香蕉久久久久久久av网站| 日韩毛片视频| 国产成年精品| 久久中文精品| 久久中文精品| 麻豆国产91在线播放| 国产精品一国产精品| 日韩中文av| 亚洲午夜久久| 亚洲精品系列| 日韩超碰人人爽人人做人人添| 一区二区精彩视频| 亚洲精选成人| 亚洲精品日韩久久| 日韩精品中文字幕吗一区二区| 美国三级日本三级久久99| 伊人成人网在线看| 日韩一区二区久久| 一区二区三区网站| 免费人成在线不卡| 亚洲免费专区| 国产精品qvod| 色综合五月天| 香蕉成人av| 欧美成人精品| 99日韩精品| 国产日韩一区| 理论片午夜视频在线观看| 久久人人精品| 欧美午夜不卡| 日本不卡视频在线观看 | 欧美日韩亚洲一区在线观看| 久久中文字幕一区二区三区| 成人精品高清在线视频| 久久麻豆精品| 日韩和欧美一区二区三区| 国产成人久久精品麻豆二区| 国产精品99免费看| 日本欧美一区二区| 日本高清不卡一区二区三区视频 | 久久婷婷丁香| 亚洲开心激情| 日产精品一区二区| 蜜臀va亚洲va欧美va天堂| 国产麻豆一区二区三区| 久久中文亚洲字幕| 91成人在线精品视频| 日韩久久精品| 欧美日韩一区二区三区在线电影| 电影亚洲精品噜噜在线观看| 亚洲日产国产精品| 性欧美xxxx免费岛国不卡电影| 97久久精品| 中文久久精品| 国产成人精品亚洲日本在线观看| 伊人国产精品| 欧美精品自拍| 成人va天堂| 成人台湾亚洲精品一区二区| 97成人在线| 六月丁香综合| 99久久精品网站| 精品国产一区二区三区性色av| 亚洲精品在线二区| 国产精品日韩欧美一区| 久久人人97超碰国产公开结果| 免费日韩一区二区三区| 亚洲三区欧美一区国产二区| 999国产精品视频| 国模大尺度视频一区二区| 日韩精品中文字幕一区二区| 午夜免费一区| av不卡免费看| 国产精品免费看| 亚洲一区二区三区在线免费| 欧美精品黄色| 亚洲激情中文| 日韩视频在线一区二区三区 | www.九色在线| 久久精品女人| 久久精品女人| 国产精品久久久久久久免费观看| 激情中国色综合| 91一区二区三区四区| 日本а中文在线天堂| 欧美国产小视频| 神马午夜在线视频| 91精品国产成人观看| 99久久久久国产精品| 欧美在线资源| 亚洲午夜免费| 免费在线观看一区| 国产资源在线观看入口av| 999国产精品视频| 六月婷婷一区| 国产伦理一区| 久久国产电影| 亚洲精品看片| 日韩欧美午夜| 丝袜美腿一区二区三区| 久久国产三级精品| 国语精品一区| 黄色av一区| 你懂的网址国产 欧美| 免费av一区| 国产情侣一区| 午夜欧美精品久久久久久久| 日本午夜精品| 亚洲天堂久久| 国产伦精品一区二区三区视频| 日本а中文在线天堂| 免费观看在线综合色| 国产中文在线播放| 91在线成人| 在线视频亚洲| 免费亚洲婷婷| 日韩中文字幕区一区有砖一区| 久久不见久久见中文字幕免费| 日韩中文字幕亚洲一区二区va在线| 九九九精品视频| 亚洲精品乱码久久久久久蜜桃麻豆| 精品美女视频| 国产精品天堂蜜av在线播放| 国产一区观看| 免费日韩一区二区三区| 人人爽香蕉精品| 蜜臀久久99精品久久一区二区| 久久97视频| 国产精品自拍区| 日韩欧美美女在线观看| 国产模特精品视频久久久久| 久久九九精品| 国产精品毛片一区二区在线看| 日韩精品一页| 亚洲永久精品唐人导航网址| 亚洲午夜精品久久久久久app| 97精品一区| 成人精品高清在线视频| 国产精品**亚洲精品| 国产欧美在线观看免费| 日韩精品视频在线看| 日韩精彩视频在线观看| 亚洲精品乱码久久久久久蜜桃麻豆| 91成人精品| 亚洲欧美日韩专区| 自由日本语亚洲人高潮| 欧美日韩精品一本二本三本| 久久国产中文字幕| 欧美色图国产精品| 激情五月综合网|