项目研发过程中,避免不了和第三方系统交互,那么就会出现对同一字段,命名方式不同了,这个是比较让人头疼的事情,所以,今天就学习一下数据映射插件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:[email protected]">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:[email protected]">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 +
'}';
}
}
}