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

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

Java編寫的實體返回VO工具

瀏覽:24日期: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久久,三上悠亚国产精品一区二区三区
日韩网站在线| 国产亚洲电影| 国产亚洲精品精品国产亚洲综合| 亚洲福利久久| 高潮久久久久久久久久久久久久| 日韩极品在线观看| 欧美日韩伊人| 国产精品毛片视频| 国产极品一区| 久久久国产精品网站| 久久久国产精品网站| 国产精品久久久久久久久免费高清| 亚洲日本国产| 欧美视频二区| 麻豆免费精品视频| 一区在线免费| 欧美不卡在线| 亚洲欧洲日韩| 日韩欧美一区免费| 国产一区日韩一区| 精品美女视频 | 鲁大师成人一区二区三区 | 国产极品嫩模在线观看91精品| 国产日韩视频在线| 欧美xxxx性| 荡女精品导航| 午夜国产一区二区| 日韩欧美中文字幕一区二区三区| 国产不卡精品在线| 日韩成人在线看| 国产精品精品国产一区二区| 国产v综合v| 欧美xxxx中国| 午夜欧美理论片| 国产成人调教视频在线观看| 中文一区在线| 99久久亚洲精品蜜臀| 国产在线日韩| 蜜桃视频欧美| 快she精品国产999| 欧美久久精品| 国产精久久久| 欧美国产先锋| 国产成人久久精品麻豆二区| 欧美精品羞羞答答| 美女久久久久久| 国产激情在线播放| 激情综合自拍| 久久国产免费看| 欧美精品一线| 国产精品三上| 欧美交a欧美精品喷水| 国产精品黑丝在线播放| 亚洲综合电影一区二区三区| 国产成人免费| 一区二区三区四区在线观看国产日韩| 98精品视频| 99久久夜色精品国产亚洲狼 | 午夜国产精品视频免费体验区| 国内自拍视频一区二区三区| 99视频精品全国免费| 午夜欧美精品久久久久久久| 午夜欧美精品久久久久久久| 日本一区中文字幕| 日韩欧美精品一区二区综合视频| 国产精品久久| 欧美精品自拍| 国产精品nxnn| 亚洲毛片一区| 日韩在线观看一区| 亚洲精品97| 高清在线一区| 99精品在线| 国产在线一区不卡| 蜜臀va亚洲va欧美va天堂| 美女网站视频一区| 97精品中文字幕| 欧美日韩日本国产亚洲在线| 欧美va亚洲va日韩∨a综合色| 国产专区一区| 91成人精品| 四虎8848精品成人免费网站| 久久国产直播| 日韩精品欧美精品| 精品一区视频| 亚洲欧美日韩专区| 成人在线丰满少妇av| 国产精品成人国产| 日韩福利视频导航| 免费人成精品欧美精品| 亚洲一区免费| 一区在线视频观看| 日韩精品电影| 正在播放日韩精品| 国产欧美日韩免费观看| 噜噜噜躁狠狠躁狠狠精品视频| 欧美福利一区| 国产一区成人| 国产91精品对白在线播放| 亚洲国内欧美| 日韩影院二区| 国产精品777777在线播放| 亚洲日本在线观看视频| 欧美va亚洲va日韩∨a综合色| 日韩成人精品一区| 国产精品高潮呻吟久久久久| 亚洲香蕉久久| 国产高清久久| 亚洲成人精品| 黑丝一区二区三区| 蜜桃久久av一区| 久久av免费看| 久久五月天小说| 久久高清国产| 国产精品一区二区三区美女 | 久久av日韩| 亚洲精品极品少妇16p| 国产亚洲高清在线观看| 在线观看一区| 欧美精品影院| 国产精品视频一区二区三区综合| 日韩1区2区3区| 欧美精品一线| 久久九九国产| 女人天堂亚洲aⅴ在线观看| 久久国产电影| 丝袜脚交一区二区| 欧美日韩1区| 久久一区二区三区电影| 日韩1区2区日韩1区2区| 日韩欧美不卡| 日韩一区二区三区精品| 亚洲综合婷婷| 日韩黄色在线观看| 国产精品美女久久久久久不卡| 午夜一区在线| 亚洲综合婷婷| 欧美永久精品| 四虎成人精品一区二区免费网站| 亚洲深深色噜噜狠狠爱网站 | 高清日韩中文字幕| 电影91久久久| 久久久久美女| 图片区亚洲欧美小说区| 日韩午夜一区| 日韩精品视频中文字幕| 国产麻豆一区| 免费一级欧美片在线观看网站 | 女生影院久久| 亚洲天堂久久| 三级在线观看一区二区| 日本不卡一区二区三区| 美日韩一区二区三区| 日韩深夜视频| 国产亚洲网站| 青青伊人久久| 国产一区调教| 99精品视频精品精品视频| 亚洲神马久久| 国产精品视频一区二区三区| 日韩大片在线播放| 丝瓜av网站精品一区二区| 91国内精品| 热三久草你在线| 在线综合亚洲| 欧美精品导航| 亚洲国产一区二区在线观看| 欧美在线91| 婷婷激情久久| 国产探花在线精品| 日韩不卡视频在线观看| 亚洲精品在线国产| 精品久久国产一区| 一区在线观看| 国产精品流白浆在线观看| 久久久久久久久久久9不雅视频| 久久最新视频| 国产黄色一区| 综合激情一区| 蜜桃久久久久| 久久精品国产久精国产| 久久国产小视频| 日本不卡在线视频| 亚洲精品.com| 欧美日韩一区自拍| 免费av一区二区三区四区| 欧美久久亚洲| 欧美亚洲国产激情| 久久国产尿小便嘘嘘| 五月天久久久| 韩国一区二区三区视频| 久久香蕉精品| 亚洲精品**中文毛片| 日本中文字幕一区二区视频| 深夜视频一区二区| 国产精品乱战久久久| 视频一区视频二区中文| 毛片在线网站| 国产精品久久久久久妇女| 欧美资源在线|