当前位置: 首页 > news >正文

企业建网站费用/国产免费crm系统有哪些在线

企业建网站费用,国产免费crm系统有哪些在线,东莞长安人才市场招聘信息,虾皮跨境电商注册在之前章节的例子中,我们在接收参数的时候都是使用的 User 类对象,这是一个 DO 对象,是用于与数据库进行交互的,而不是用于与前端业务进行交互的,所以需要创建一个 BO 业务对象用来与前端业务进行交互,保证…
53194554b5ed9d3954a94e18d762fd63.png

在之前章节的例子中,我们在接收参数的时候都是使用的 User 类对象,这是一个 DO 对象,是用于与数据库进行交互的,而不是用于与前端业务进行交互的,所以需要创建一个 BO 业务对象用来与前端业务进行交互,保证数据隔离性及安全性。

接收参数换成了 BO 对象,但数据入库使用的是 DO 对象,这中间就需要将 BO 对象的属性复制到 DO 对象,然后代码里就会出现大量的 do.set(bo.get()),这让代码显得臃肿,繁琐。当然,通过反射或者是使用 Spring 提供的 BeanUtils.copyProperties() 等方法也可以达到简化代码的效果,但是在效率方面不尽如人意。

而 MapStruct 则提供了一种高效的解决方案,其实现方式是在编译期,自动生成相关的 do.set(bo.get()) 代码,所以,在运行期实际上就是直接调用原生的get/set 方法。

相关知识

MapStruct官网:http://mapstruct.org

课程目标

SpringBoot 整合 MapStruce 以及 Lombok

操作步骤

本文使用 Idea 集成开发环境

环境准备

安装 MapStruce 插件

File -> settings,打开 Idea 的设置界面,从左侧栏选择 Plugins 选项,再在右侧查询 MapStruce,点击安装。

设置IDE

File -> Settings 打开设置界面,

选择 Build,Execution,Deployment -> Compiler -> Annotation Processors 进入设置界面,

勾选 enable annotation processing

添加依赖

引入 Spring Boot Starter 父工程

f6bf94ca104eb2be43d7e66ba0c20508.png

添加 mapstruct 的依赖

7de8869993bd12db11bb03a2f2094214.png

同时整合 Lombok,添加对 Lombok 的依赖

6d4aa83654cca58f1ff6a0ea2cfb3cdb.png

添加 mapstruct 的插件依赖,同时配置 Lombok

76e513301d83cb233e61e7238cd302b1.png

编码

编写 BO 类,用于接收前端入参

012613972c5dc1dc9bf84ed27e8cb538.png

编写 Mappering 转换器

  • 类上添加 @Mapper 注解,用于项目启动时自动加载
  • 方法上添加 @Mapping 注解,用于设置转换规则,source 设置源对象属性,target 设置目标对象属性,如果源对象属性名与目标对象属性名一致,则无需设置,在本例中,我们需要将 UserBO 对象的 mobile 属性复制至 User 对象的 name 属性中
  • 设置常量 INSTANCE,用于其它方法调用,也可以通过 Spring 的 IOC 进行注入
e8479e2caa08ed26dcec9a0573369ad9.png

编写 controller 接口

cde69714c59acd0babcb179b24c12d5f.png

验证结果

编写测试用例

8a7b5a345ee11cd6a91d46c9b407c63c.png

源码地址

本章源码 : https://gitee.com/gongm_24/spring-boot-tutorial.git

总结

MapStruct 释放掉大量的属性复制的代码,改为编译时自动生成,所以只是精简了项目代码。

注意

项目编译后,UserMapper 接口会在 target 目录的相应路径下生成一个 class 实现类,通过查看该实现类,可以看到实际生成的代码结构。但是,在编码过程中,如果修改了 UserMapper 接口内容,Idea 有时并不会重新编译,导致最新的修改无法生效,必须得先对项目执行一次 clean 操作,清除掉 class 实现类,再次启动时就会重新编译。

http://www.jmfq.cn/news/5038795.html

相关文章:

  • 高端网站设计收费/营销推广48个方法
  • 六枝做网站/免费建立一个网站
  • java做的网站怎么转app/百度一下的网址
  • 做二手车网站怎么做的/常见的网站推广方式有哪些
  • 辽阳好的网站建设公司/个人引流推广怎么做
  • 唐河企业网站制作哪家好/seo软文是什么意思
  • 唯一做性视频的网站/360优化大师官方版
  • 两学一做网站无法做题/广告优化师工作内容
  • 做英文的小说网站/网站推广服务报价表
  • 鞍山网站建设营销/网络营销策划书范文
  • 东营中移动网站建设/网络优化报告
  • wordpress广告最后加载/杭州seo网站推广
  • 网站开发实训心得体会/网站搜索引擎优化
  • 字体设计网站有哪些/网络推广好做吗?
  • 进口彩妆做的好的网站/引流app推广软件
  • 网站打开慢/官网优化包括什么内容
  • 哪个网站做二手车抵押/seo超级外链工具
  • 网站定制建设公司/15个常见关键词
  • 网站推广的内涵/2022最新永久地域网名
  • 互联网信息服务平台入口/seo优化的主要任务包括
  • 武汉五合一网站建设/求几个微信推广平台
  • 鞍山网站制作公司/无锡网络推广平台
  • 技术支持 东莞网站建设母婴护理/外链免费发布平台
  • 手机如何登入网站服务器/360地图怎么添加商户
  • 衡水网站设计/如何优化网站首页
  • 免费建企业网站/上海百度推广客服电话
  • wordpress设置icon/企业网站的优化建议
  • 公安局 网站备案查询/站长工具综合查询ip
  • 什么是云速建站服务/南宁seo主管
  • 龙岗网络推广深圳网站建设/seoul是什么意思