电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

SpringBoot 入門教程之引入數據傳輸層的方法

瀏覽:43日期:2023-05-05 14:09:11

我們現在操作的數據直接就使用了實體類,假如我們輸出的用戶對象需要包含用戶擁有的權限列表,那么我們怎么封裝呢?

直接封裝進實體類中顯然不行,因為實體類的職責就是提供與數據庫表字段一一對應的映射關系,所以我們還需要封裝出一層數據傳輸層 DTO(Data Transfer Object),通過它暴露給外部,這樣我們就能高度定制化我們需要輸出的數據而不會影響到實體類。

在項目中創建 dto 目錄,新建 UserDto.java 文件:

package com.foxescap.wxbox.dto;import lombok.Data;import java.time.LocalDateTime;/** * @author xfly */@Datapublic class UserDto { private String username; private LocalDateTime expiredAt; private LocalDateTime createdAt; private List<RoleDto> roles;}

結構看上去基本和對應的實體類非常相似,職責區別就是:

• 我不想暴露出去的字段可以直接不聲明。

• 我可以加如其他的 DTO 作為其中的屬性,如上所示。

對應我們的 Service 層就需要在拿到實體類對象后轉換成 DTO 對象:

public UserDto findByUsername(String username) { var user = lambdaQuery().eq(User::getUsername, username).one(); var userDto = new UserDto(); userDto.setUsername(user.getUsername()); userDto.setExpiredAt(user.getExpiredAt()); userDto.setCreatedAt(user.getCreatedAt()); return userDto;}

這里你會發現,這個轉換的過程特別難受,就像寫 Getter 和 Setter 方法一樣,寫多了要吐了。

我會寫吐別人也一樣會寫吐,然后就會有輪子造出來,modelmapper就是解決這樣需求的一個用的人比較多的輪子。

在 pom.xml 項目配置文件中的 dependencies 中加入 modelmapper 依賴:

<dependency> <groupId>org.modelmapper</groupId> <artifactId>modelmapper</artifactId> <version>2.3.7</version></dependency>

然后在 config 目錄中的 WebMvcConfig.java 文件中注入這個對象:

@Beanpublic ModelMapper modelMapper() { ModelMapper modelMapper = new ModelMapper(); modelMapper.getConfiguration().setFullTypeMatchingRequired(true); modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT); return modelMapper;}

我們這個時候再來改造一下 findByUsername 方法:

private final ModelMapper modelMapper;public UserService(ModelMapper modelMapper) { this.modelMapper = modelMapper;}public UserDto findByUsername(String username) { var user = lambdaQuery().eq(User::getUsername, username).one(); return modelMapper.map(user, UserDto.class);}

到此這篇關于SpringBoot 入門教程之引入數據傳輸層的方法的文章就介紹到這了,更多相關SpringBoot 引入數據傳輸層內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 云南外加剂,云南速凝剂,云南外加剂代加工-普洱澜湄新材料科技有限公司 | 切铝机-数控切割机-型材切割机-铝型材切割机-【昆山邓氏精密机械有限公司】 | 贵阳用友软件,贵州财务软件,贵阳ERP软件_贵州优智信息技术有限公司 | 生鲜配送系统-蔬菜食材配送管理系统-连锁餐饮订货配送软件-挪挪生鲜供应链管理软件 | 无菌实验室规划装修设计-一体化实验室承包-北京洁净净化工程建设施工-北京航天科恩实验室装备工程技术有限公司 | 专业甜品培训学校_广东糖水培训_奶茶培训_特色小吃培训_广州烘趣甜品培训机构 | 磁力链接搜索神器_BT磁力狗_CILIMAO磁力猫_高效磁力搜索引擎2024 | 消电检公司,消电检价格,北京消电检报告-北京设施检测公司-亿杰(北京)消防工程有限公司 | 润滑油加盟_润滑油厂家_润滑油品牌-深圳市沃丹润滑科技有限公司 琉璃瓦-琉璃瓦厂家-安徽盛阳新型建材科技有限公司 | 三佳互联一站式网站建设服务|网站开发|网站设计|网站搭建服务商 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 工业rfid读写器_RFID工业读写器_工业rfid设备厂商-ANDEAWELL | 煤棒机_增碳剂颗粒机_活性炭颗粒机_木炭粉成型机-巩义市老城振华机械厂 | 大功率金属激光焊接机价格_不锈钢汽车配件|光纤自动激光焊接机设备-东莞市正信激光科技有限公司 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 酒精检测棒,数显温湿度计,酒安酒精测试仪,酒精检测仪,呼气式酒精检测仪-郑州欧诺仪器有限公司 | 小型高低温循环试验箱-可程式高低温湿热交变试验箱-东莞市拓德环境测试设备有限公司 | SDG吸附剂,SDG酸气吸附剂,干式酸性气体吸收剂生产厂家,超过20年生产使用经验。 - 富莱尔环保设备公司(原名天津市武清县环保设备厂) | 北京模型公司-工业模型-地产模型-施工模型-北京渝峰时代沙盘模型制作公司 | 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | 气力输送_输送机械_自动化配料系统_负压吸送_制造主力军江苏高达智能装备有限公司! | 不锈钢轴流风机,不锈钢电机-许昌光维防爆电机有限公司(原许昌光维特种电机技术有限公司) | 中医治疗皮肤病_潍坊银康医院「山东」重症皮肤病救治平台 | 上海防爆真空干燥箱-上海防爆冷库-上海防爆冷柜?-上海浦下防爆设备厂家? | 污水提升器,污水提升泵,污水提升装置-德国泽德(zehnder)水泵系统有限公司 | 成都离婚律师|成都结婚律师|成都离婚财产分割律师|成都律师-成都离婚律师网 | 德国UST优斯特氢气检漏仪-德国舒赐乙烷检测仪-北京泽钏 | 稳尚教育加盟-打造高考志愿填报平台_新高考志愿填报加盟_学业生涯规划加盟 | 致胜管家软件服务【在线免费体验】 | 楼承板-开口楼承板-闭口楼承板-无锡海逵 | SF6环境监测系统-接地环流在线监测装置-瑟恩实业 | 金属管浮子流量计_金属转子流量计厂家-淮安润中仪表科技有限公司 | 广东恩亿梯电源有限公司【官网】_UPS不间断电源|EPS应急电源|模块化机房|电动汽车充电桩_UPS电源厂家(恩亿梯UPS电源,UPS不间断电源,不间断电源UPS) | 没斑啦-专业的祛斑美白嫩肤知识网站-去斑经验分享 | 冷镦机-多工位冷镦机-高速冷镦机厂家-温州金诺机械设备制造有限公司 | 大_小鼠elisa试剂盒-植物_人Elisa试剂盒-PCR荧光定量试剂盒-上海一研生物科技有限公司 | 东莞动力锂电池保护板_BMS智能软件保护板_锂电池主动均衡保护板-东莞市倡芯电子科技有限公司 | 流水线电子称-钰恒-上下限报警电子秤-上海宿衡实业有限公司 | 不锈钢复合板厂家_钛钢复合板批发_铜铝复合板供应-威海泓方金属复合材料股份有限公司 | 德国UST优斯特氢气检漏仪-德国舒赐乙烷检测仪-北京泽钏 | 都江堰招聘网-都江堰人才网 都江堰人事人才网 都江堰人才招聘网 邢台人才网_邢台招聘网_邢台123招聘【智达人才网】 | 北京环球北美考试院【官方网站】|北京托福培训班|北京托福培训 | 物和码官网,物和码,免费一物一码数字化营销SaaS平台 |