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

中国网站用Cn域名江苏屹峰建设网站

中国网站用Cn域名,江苏屹峰建设网站,北京网站开发周期,网站建设开放的端口前言 之前在进行DTO、VO、与Entity 转换时#xff0c;经常使用 BeanUtils.copyProperties();方法进行参数转换#xff0c;或者手动写gettersetter方法。今天在看公司框架的时候发现了另外一种方法进行参数转换。这样进行转换更快速、安全。 与手动编写映射代码相比#xf…前言 之前在进行DTO、VO、与Entity 转换时经常使用 BeanUtils.copyProperties();方法进行参数转换或者手动写gettersetter方法。今天在看公司框架的时候发现了另外一种方法进行参数转换。这样进行转换更快速、安全。 与手动编写映射代码相比MapStruct通过生成繁琐且易于出错的代码来节省时间。遵循配置方法上的约定MapStruct使用合理的默认值但在配置或实现特殊行为时不加理会。 与动态映射框架相比MapStruct具有以下优点 通过使用普通方法调用settter/getter而不是反射来快速执行编译时类型安全性只能映射相互映射的对象和属性不能将order实体意外映射到customer DTO等。如果有如下问题编译时会抛出异常 3.1 映射不完整并非所有目标属性都被映射 3.2 映射不正确找不到正确的映射方法或类型转换可以通过freemarker定制化开发 使用 1、引入 那么我们如何使用mapstruct呢首先在pom文件中引入 !-- mapstruct --!--mapstruct核心 org.mapstructmapstruct包含必需的注释例如Mapping--dependencygroupIdorg.mapstruct/groupIdartifactIdmapstruct-processor/artifactIdversion1.2.0.Final/version/dependency!--mapstruct编译 org.mapstructmapstruct-processor包含注释处理器该注释处理器生成映射器实现--dependencygroupIdorg.mapstruct/groupIdartifactIdmapstruct-jdk8/artifactIdversion1.2.0.Final/version/dependency!-- mapstruct end -- Lombok依赖用于生成类中的SetterGetter方法。不是必须引用 dependencygroupidorg.projectlombok/groupidartifactidlombok/artifactid/dependency 2、使用 这里我只实例简单的用法如果想深入了解可以参考文章 http://t.csdn.cn/GjtZLhttp://t.csdn.cn/GjtZL引入完依赖后 我们定义一个接口类 //导mapstruct包下的 Mapper(componentModelspring) Component public interface OrderInputConvert {OrderInputConvert INATANCE Mappers.getMapper(OrderInputConvert.class);//意为 把input入参类 转换为 order名称的实体类Order input2Do(OrderInput inputParam);//同理 List集合的转换ListOrder inputList2DoList(ListOrderInput inputParamList);} 至此 最基本的mapstruct 配置就完成了使用时 把这个接口自动注入进到使用的类中再通过方法名传入vo\input 等需要转换成实体类的参数即可使用。 那么他是如何实现的呢 当编译完成后 在项目的 “target ” 包下找到同名类 我们会发现多生成了一个 impl实现类让我们来看一看mapstruct 是如何实现的。 public class OrderacptInputConvertImpl implements OrderacptInputConvert {public OrderacptInputConvertImpl() {}//普通的转换实现类public Orderacpt input2Do(OrderacptInput inputParam) {if (inputParam null) {return null;} else {Orderacpt orderacpt new Orderacpt();orderacpt.setId(inputParam.getId());orderacpt.setTheOrder(inputParam.getTheOrder());orderacpt.setAcptDate(inputParam.getAcptDate());orderacpt.setAcptTime(inputParam.getAcptTime());orderacpt.setTheDevice(inputParam.getTheDevice());//...多余代码略 同样都是 setter操作return orderacpt;}}//List转换类public ListOrderacpt inputList2DoList(ListOrderacptInput inputParamList) {if (inputParamList null) {return null;} else {ListOrderacpt list new ArrayList(inputParamList.size());Iterator var3 inputParamList.iterator();while(var3.hasNext()) {OrderacptInput orderacptInput (OrderacptInput)var3.next();list.add(this.input2Do(orderacptInput));}return list;}} } 通过这个实现类我们可以看到原理是Setter操作使用mapstruct后 可以更快速的进行参数的转换使用BeanUtils也是可以的(但是我在使用BeanUtils时有遇到过一些bug 有的赋值是会出现bug 的 看咱们具体使用情况定)。 3、项目中使用 我们再看一下实际使用情况 //service层实现类 IOrderFacade 接口的实现类 public class OrderFacadeImpl implements IOrderFacade {//使用Autowired进行自动注入 注入刚刚上面咱们写好的 使用Mapper(componentModelspring)注解定义的convert接口AutowiredOrderInputConvert inputConvert;AutowiredOrderOutputConvert outputConvert;Overridepublic boolean updateById(OrderInput inputParam){//直接传入input值即可转换完成Order doObject inputConvert.input2Do(inputParam);return iOrderService.updateById(doObject);}} 基本的使用说明 就介绍到这里如果想深入了解 可以继续查阅相关文档。
http://www.hkea.cn/news/14377056/

相关文章:

  • 做满屏网站的尺寸物流网站素材
  • 翻书效果的网站国内最大的网站建设公司
  • 上海企业网站建设费用网站分析表
  • 重庆推广网站的方法长沙网站设计建设
  • 内蒙古工程建设招投标中心网站宁夏快速自助制作网站
  • 休闲食品网站建设传媒公司做网站条件
  • 唐山公司网站建设 中企动力唐山淘宝网站建设的主图如何设计
  • 如何做h5简历制作网站网站免备案空间
  • 买CAD设计图做的网站网络营销公司架构
  • 广东专业网站开发长春网站关键词推广
  • 晋江住房和城乡建设局网站sem工作内容
  • 网站建设销售如何接单网站备案要
  • 个人备案可以建企业网站吗行业网站建设方式有哪些
  • 旅游网站开发的重要性公司微网站怎么建设
  • 仿站能被百度收录吗洪梅镇做网站
  • 手机免费永久建立网站高端网站开发公开课
  • 深圳网红打卡旅游景点关键词推广seo怎么优化
  • 采集网站后台数据论坛网站开发框架angular
  • 站长统计app软件大全百度6大核心部门
  • 设计公司网站公司详情wordpress配置ftp服务器
  • 大学网站模板下载2022年新闻大事
  • 宁波网站建设优化企业沈阳有资质做网站的公司有哪些
  • 网站悬浮图标怎么做做装饰材料的网站
  • 网站维护多少钱一个月网站推广的岗位要求
  • 医疗器械网站怎么做网站建设责任分解
  • 网络推广网站推广怎么做干果网站
  • 做静态网站有什么用公司网站建设费用计入什么科目
  • 广东宏福建设有限公司网站电脑访问手机网站跳转
  • 哈尔滨网站建设服务公司网易邮箱163 com登录
  • 不备案的网站能打开吗公司网站实名认证