【Dozer】数据映射之bean映射

本文介绍了在项目开发中如何利用数据映射工具Dozer解决字段命名差异问题。通过引入Dozer库,展示了Maven配置和简单的Java代码示例,演示了如何进行对象之间的属性映射。

项目研发过程中,避免不了和第三方系统交互,那么就会出现对同一字段,命名方式不同了,这个是比较让人头疼的事情,所以,今天就学习一下数据映射插件Dozer。

直接上代码:

1、maven引入dozer jar包:

<dependency>
     <groupId>com.github.dozermapper</groupId>
     <artifactId>dozer-core</artifactId>
     <version>6.4.0</version>
</dependency>

2、java代码:

package cn.gtmap.estateplat.olcommon.util;

import com.github.dozermapper.core.DozerBeanMapperBuilder;
import com.github.dozermapper.core.Mapper;
import com.github.dozermapper.core.Mapping;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @author <a href="mailto:934804229@qq.com">Tastill</a>
 * @version 2019/9/3 11:24
 * @description DozerUtils
 */
@Component
public class DozerUtils {


    /**
      * @description Here's demo
      * @param
      * @return
      * @version 2.0, 2019/9/3 14:05
      * @author <a href="mailto:934804229@qq.com">Tastill</a>
      */

    public static void main(String[] args){
        Mapper mapper = DozerBeanMapperBuilder.buildDefault();
        A a = new A();
        a.setStudentName("张三");
        a.setAge(12);
        B b = mapper.map(a, B.class);
        System.out.println(b);
    }


    static class A{
        @Mapping("name")
        private String studentName;
        private Integer age;

        public String getStudentName() {
            return studentName;
        }

        public void setStudentName(String studentName) {
            this.studentName = studentName;
        }

        public Integer getAge() {
            return age;
        }

        public void setAge(Integer age) {
            this.age = age;
        }

        @Override
        public String toString() {
            return "A{" +
                    "studentName='" + studentName + '\'' +
                    ", age=" + age +
                    '}';
        }
    }

    static class B{
        private String name;
        private Integer age;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public Integer getAge() {
            return age;
        }

        public void setAge(Integer age) {
            this.age = age;
        }

        @Override
        public String toString() {
            return "B{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    '}';
        }
    }
}

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值