实体类转换视图类,转换器

本文介绍了作者在项目中从使用Spring的BeanUtils方法,到学习Hutool工具类转换,再到引入MapStruct框架进行对象映射的过程,展示了不同工具在处理对象转换时的效率和特性。
摘要由CSDN通过智能技术生成

1、以前我都是直接用spring提供的:BeanUtils.copyProperties(entuty, vo1);方法去转换。

2、后面又学到了转换hutool工具类的转换方法。

3、现在又学了一个利用mapstruct框架转换。

package com.jsrDom.controller;

import cn.hutool.core.bean.BeanUtil;
import com.jsrDom.converter.TestUserConverter;
import com.jsrDom.pojo.entity.MyUserEntity;
import com.jsrDom.pojo.vo.MyUserVO;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;


/**
 * @program: springBoot
 * @author: quxiao
 * @create: 2024-04-08 09:42
 **/
@RestController
@RequiredArgsConstructor
public class t1 {
    private final TestUserConverter testUserConverter;

    @GetMapping("/test1")
    public void test1() {
        MyUserEntity entuty = new MyUserEntity("qx", 10);
        MyUserVO vo1 = new MyUserVO();
        //spring提供的方法
        BeanUtils.copyProperties(entuty, vo1);
        //mapstruct提供的
        MyUserVO vo = testUserConverter.UserToVO(entuty);
        System.out.println(vo);
        System.out.println(vo1);
    }

    @GetMapping("/test2")
    public void test3() {
        List<MyUserEntity> list = new ArrayList<>(Arrays.asList(new MyUserEntity("1", 1), new MyUserEntity("1", 1), new MyUserEntity("1", 1)));
        List<MyUserVO> vos1 = testUserConverter.UsersToVOs(list);
        vos1.stream().forEach(e -> System.out.println(e));
        System.out.println("-----------------------");
        //hutool提供的
        BeanUtil.copyToList(list, MyUserVO.class).stream().forEach(e -> System.out.println(e));
    }
}
package com.jsrDom.converter;

import com.jsrDom.pojo.entity.MyUserEntity;
import com.jsrDom.pojo.vo.MyUserVO;
import org.mapstruct.Mapper;

import java.util.List;

/**
 * mapstruct方法
 **/
@Mapper(componentModel = "spring")
public interface TestUserConverter {
    MyUserVO UserToVO(MyUserEntity entity);

    List<MyUserVO> UsersToVOs(List<MyUserEntity> list);
}
     <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct</artifactId>
            <version>1.5.0.RC1</version>
        </dependency>
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct-jdk8</artifactId>
            <version>1.5.0.RC1</version>
        </dependency>
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct-processor</artifactId>
            <version>1.5.0.RC1</version>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.12</version>
        </dependency>

 使用mapstruct利用了spring的代理模式,将接口补充一个对应的转换方法,在构建时可以查看到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值