zoukankan      html  css  js  c++  java
  • springboot 整合dozer 实体类之间的转换

    
    

    1、首先引入依赖

    
    
    <!--dozer -->
            <dependency>
                <groupId>net.sf.dozer</groupId>
                <artifactId>dozer-spring</artifactId>
                <version>5.5.1</version>
            </dependency>
            <dependency>
                <groupId>net.sf.dozer</groupId>
                <artifactId>dozer</artifactId>
                <version>5.5.1</version>
            </dependency>


    也可以在实体中使用@Mapping注解。 下面列出我的实体和VO例子: Users.java
    import lombok.Data; import org.dozer.Mapping; @Data public class Users { @Mapping("Id") private BigDecimal userId; private String userName; private String password; private String firstName; private String lastName; } @Mapping(“Id”) 对应的以下UsersVO的Id UsersVO.java import lombok.Data; import java.math.BigDecimal; @Data public class UsersVO { private BigDecimal Id; private String userName; private String password; 3、创建GeneralConvertor.java import org.dozer.Mapper; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.TreeSet; /** * dozer 转换器 */ @Component public class GeneralConvertor { @Resource Mapper mapper; /** * List 实体类 转换器 * * @param source 原数据 * @param clz 转换类型 * @param <T> * @param <S> * @return */ public <T, S> List<T> convertor(List<S> source, Class<T> clz) { if (source == null) return null; List<T> map = new ArrayList<>(); for (S s : source) { map.add(mapper.map(s, clz)); } return map; } /** * Set 实体类 深度转换器 * * @param source 原数据 * @param clz 目标对象 * @param <T> * @param <S> * @return */ public <T, S> Set<T> convertor(Set<S> source, Class<T> clz) { if (source == null) return null; Set<T> set = new TreeSet<>(); for (S s : source) { set.add(mapper.map(s, clz)); } return set; } /** * 实体类 深度转换器 * * @param source * @param clz * @param <T> * @param <S> * @return */ public <T, S> T convertor(S source, Class<T> clz) { if (source == null) return null; return mapper.map(source, clz); } public void convertor(Object source, Object object) { mapper.map(source, object); } public <T> void copyConvertor(T source, Object object) { mapper.map(source, object); } } (注意:该类需要添加@Component,让它能被扫描到) 4、测试 @Service public class UsersService{ @Resource GeneralConvertor convertor; @Override public List<UsersVO> findAll() { List<Users> list = usersMapper.findAll(); //关键代码 List<UsersVO> usersVO =convertor.convertor(list,UsersVO.class); return usersVO ; } }
  • 相关阅读:
    1.Spring MVC详解
    servlet的九大内置对象
    Hibernate设置事务的隔离级别
    wamp下php报错session_start(): open(d:/wamp/tmpsess_ku776hvb06ko4lv9d11e7mnfj1, O_RDWR) failed: No such file or directory
    json_decode()相关报错
    wamp下var_dump()相关问题
    es6箭头函数内部判断
    Json数组对象取值
    npm指向淘宝源
    APICloud之封装webApp
  • 原文地址:https://www.cnblogs.com/dkws/p/12170040.html
Copyright © 2011-2022 走看看