SpringBoot——Dozer实现对象转换

本文介绍了如何在Spring Boot项目中使用Dozer库进行对象转换,包括单个对象和List对象的转换,以及配置Dozer映射文件和利用DozerProperties设置映射规则。重点讲解了配置文件dozer-mapper.xml的作用和对象属性映射的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 导入依赖

     <dependency>
            <groupId>com.github.dozermapper</groupId>
            <artifactId>dozer-spring-boot-starter</artifactId>
            <version>6.5.0</version>
    </dependency>

2 DozerUtil对象转换工具类

/**
 * @author lyf
 * @description
 * @create 2022-06-08 20:47
 * dozer 对象工具类
 **/
 @Componet
public class DozerUtil {

    //dozer-spring-boot-stater中注入的对象
    @Autowired
    private Mapper mapper;

    public DozerUtil (Mapper mapper){
        this.mapper=mapper;
    }


    //单个对象转换
    public <T> T map(Object source,Class<T> destination){
        return mapper.map(source,destination);
    }


    //List 对象转换
    public <T> List<T>  mapList(List<Object> sourceList,Class<T>destination){
        if(sourceList==null||destination==null){
            return null;
        }else{
            //遍历转换
            List<T> list=new ArrayList<>();
            for(Object o:sourceList){
                T obj=map(o,destination);
                list.add(obj);
            }
            return list;
        }
    }
}

3 Dozer对象转换配置文件

对象的转换离不开属性与属性间的映射关系。包括不同属性名,同属性名不同属性的类别的之间对象的转换关系。该转换关系离不开dozer的配置xml文件。

该文件通常放在resourses 文件夹下,例如新建dozer-mapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<mappings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns="http://dozermapper.github.io/schema/bean-mapping"
          xsi:schemaLocation="http://dozermapper.github.io/schema/bean-mapping
                             http://dozermapper.github.io/schema/bean-mapping.xsd">
    <!--描述两个类中属性的对应关系,对于两个类中同名的属性可以不映射-->
    <!-- <class-a>与<class-b> 中描述的对象的限定类名 -->
    <mapping date-format="yyyy-MM-dd"> 
        <class-a>对象a</class-a>
        <class-b>对象b</class-b>
        <field>
            <a>属性1</a>
            <b>属性1</b>
        </field>
        <field>
            <a>属性2</a>
            <b>属性2</b>
        </field>
        <field>
            <a>属性3</a>
            <b>属性3</b>
        </field>
    </mapping>
</mappings>

4 配置DozerProperties

dozer:
  mappingFiles:
    - classpath: dozer-mapper.xml
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值