Java Spring集成MapStruct详情

目录
  • 待转换的类
  • 目标类
  • 转换接口
  • 测试类

前言:

MapStruct支持Spring的依赖注入机制,只须要在@Mapper注解中添加componentModel配置项,并设置为“spring”便可。

待转换的类

@Getter
@Setter
@ToString
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Spu {
    private Integer id;
    private String name;
    private String caption;
    private String pics;
    private String specs;
    private String unit;
    private Integer hot;
    private Integer comments;
    private Integer agrees;
    private Integer recommend;
    private Integer status;
    private String service;
    private String info;
    private Integer countryId;
    private String addr;
    private LocalDateTime createTime;
    private LocalDateTime updateTime;
}

目标类

@Getter
@Setter
@ToString
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class SpuVO {
    private Integer id;
    private String name;
    private String caption;
    private String pics;
    private String specs;
    private String unit;
    private String service;
    private String addr;
}

转换接口

@Mapper(componentModel = "spring")
public interface SpuTrans {
    List<SpuVO> spuList2SpuVOList(List<Spu> spuList);
}

测试类

@Controller
@RequestMapping()
public class IndexController {
    @Resource
    private SpuTrans spuTrans;
    @Resource
    private SpuService spuService;

    @GetMapping("/list")
    public ModelAndView list(ModelAndView mav) {
        //轮播图
        List<Spu> spuList = spuService.selectAll();
  		List<SpuVO> spuVOList = spuTrans.spuList2SpuVOList(spuList);

        mav.addObject("spuVOList", spuVOList);
        mav.setViewName("spu_list");
        return mav;
    }
}

到此这篇关于Java Spring集成MapStruct详情的文章就介绍到这了,更多相关Spring集成MapStruct内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • SpringBoot + MapStruct 属性映射工具的使用详解

    1. MapStruct 是什么? 截取下官方的原话 我给翻译了一下 说白了 当你的对象A有几十个属性 而另一个对象B 与A比较只有一些细微的差别 那么这时候只需要映射过去即可 而不需要疯狂的调用set方法 进行属性的拷贝 这就是这个工具给我们带来的最大便利 官方github链接 点击跳转 2. 引入依赖 采用Mapstruct的 最新版本 1.4.2.Final SpringBoot版本不要选新版的 我对比了下 2.3.0 和 2.5.4 后者会出现属性映射为null的情况 已经将问题反馈了

  • SpringBoot 整合mapstruct的实现步骤

    目录 前言 mapstruct 使用来干什么的? mapstruct 相对于BeanUtils的优势在哪? 编码 引入依赖 创建 DTO.VO 运行测试用例 怎么解决mapstruct 失效呢? mapstruct常规操作 不同字段映射 LIST转换 总结 前言 在项目中,如果我们要遵循分层领域模型规约: 话,肯定避免不了在DTO.VO.BO.AO.VO.Query等实体的转换,我们通常有几种做法: 手动一个个字段的赋值通过反序列化的手段,必须先转成JSON字符串,再转回来使用Spring的Be

  • Java Spring集成MapStruct详情

    目录 待转换的类 目标类 转换接口 测试类 前言: MapStruct支持Spring的依赖注入机制,只须要在@Mapper注解中添加componentModel配置项,并设置为“spring”便可. 待转换的类 @Getter @Setter @ToString @Builder @AllArgsConstructor @NoArgsConstructor public class Spu { private Integer id; private String name; private S

  • Java spring mvc请求详情介绍

    目录 一.源码执行流程 二.源码执行流程图 三.spring mvc中的一核心组件 四.源码分析 五.获取组件相关逻辑: 六.获取参数,执行方法源码分析 七.渲染视图逻辑 前言: 本文源码基于spring-framework-5.3.10. mvc是spring源码中的一个子模块! 一.源码执行流程 用户发送请求至前端控制器DispatcherServlet. DispatcherServlet收到请求调用处理器映射器HandlerMapping.处理器映射器根据请求url找到具体的处理器,生成

  • Spring纯Java配置集成kafka代码实例

    这篇文章主要介绍了Spring纯Java配置集成kafka代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 KafkaConfig.java package com.niugang.config; import java.util.HashMap; import java.util.Map; import org.apache.kafka.clients.consumer.ConsumerConfig; import org.apache

  • Spring通过Java配置集成Tomcat的方法

    添加Tomcat依赖 <!-- 自己编译的版本--> <dependency> <groupId>org.apache</groupId> <artifactId>apache-tomcat-9.0.36-src</artifactId> <version>1.0-SNAPSHOT</version> </dependency> 首先需要一个tomcat启动类 public class Tomcat

  • Spring boot 集成 MQTT详情

    目录 一.简介 二.主要特性 三.集成步骤 1.引入相关jar包 2.核心配置类 3.网关配置 4.编写测试类 5.yml配置信息 一.简介 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,可以以极少的代码和有限的带宽为连接远程设备提供实时可靠的消息服务.目前在物联网.小型设备.移动应用等方面有较广泛的应用. 二.主要特性 (1)使用发布/订阅消

  • Java中的Spring循环依赖详情

    目录 什么是循环依赖? 那么循环依赖是个问题吗? Bean的生命周期 三级缓存 解决循环依赖思路分析 Spring到底解决了哪种情况下的循环依赖 总结 什么是循环依赖? 很简单,就是A对象依赖了B对象,B对象依赖了A对象. 比如: 那么循环依赖是个问题吗? 如果不考虑Spring,循环依赖并不是问题,因为对象之间相互依赖是很正常的事情. 比如: 这样,A,B就依赖上了. 但是,在Spring中循环依赖就是一个问题了,为什么? 因为,在Spring中,一个对象并不是简单new出来了,而是会经过一系

  • Java Spring 事件监听详情解析

    目录 前言 需求背景 事件概念 定义 组成 事件实现 时序图 前言 前段时间因为工作的需要用到Spring事件,翻翻文档将功能实现了,但是存在少许理解不畅的地方,今天有空来梳理梳理. 需求背景 叶子同学在新入职公司,老大让他实现登陆功能,叶子随手写完,上线无bug,一切安好 //登陆伪代码 public void login(....){ userLogin(....); } 几天之后,老大说为维护用户的粘度,每天登陆送积分.叶子同学,二话不说,一顿操作后,上线无bug,一切安好 //登陆伪代码

  • Java Spring Boot 集成Zookeeper

    目录 集成步骤 1.pom.xml文件配置,引入相关jar包 2. 核心配置类 3.常用API功能 4.基本使用 常见错误和解决办法 问题1:调用api创建zookeeper节点时,报KeeperErrorCode = Unimplemented for /test错误. 问题2:启动项目的日志中会有Will not attempt to authenticate using SASL错误 集成步骤 1.pom.xml文件配置,引入相关jar包 Curator是Netflix公司开源的一套zoo

  • Spring集成MyBatis完整实例(分享)

    为了梳理前面学习的<Spring整合MyBatis(Maven+MySQL)一>与<Spring整合MyBatis(Maven+MySQL)二>中的内容,准备做一个完整的示例完成一个简单的图书管理功能,主要使用到的技术包含Spring.MyBatis.Maven与MySQL等.最后的运行效果如下: 项目结构如下: 一.新建一个基于Maven的Web项目 1.1.创建一个简单的Maven项目,项目信息如下: 1.2.修改层面信息,在项目上右键选择属性,再选择"Project

  • Spring集成MyBatis框架

    Java在写数据库查询时,我接触过四种方式: 1.纯Java代码,引用对应的数据库驱动包,自己写连接与释放逻辑(可以用连接池) 这种模式实际上性能是非常不错的,但是使用起来并不是非常方便:一是要手工为Connection做获取与释放,大量的冗余代码也容易出错:另一个是,复杂的SQL用字符串写起来简直不可维护(换行.可视长度.参数都是问题). 2.使用Spring JdbcTemplate 这个其实还是挺不错的,配置比较简单,功能丰富上比手工管理Connection要舒服多了,而且代码也比较简洁.

随机推荐