开发中,我们经常需要将po转dto、dto转po等一些实体间的转换。比较出名的有beanutil 和modelmapper等,它们使用简单,但是在稍显复杂的业务场景下力不从心。mapstruct这个插件可以用来处理domin实体类与model类的属性映射,可配置性强。只需要定义一个 mapper 接口,mapstruct 就会自动实现这个映射接口,避免了复杂繁琐的映射实现。mapstruct官网地址:
引入依赖
org.mapstruct
mapstruct-jdk8
1.1.0.final
需求
我们假设有学生student 类 需要转换成 用户 user 类,将学生信息存入用户信息库
此时student 类内容如下:
public class student {
private integer id;
private string name;
private integer age;
private string sex;
//setters, getters, tostring() 方法此处省略不写,但是实际开发需要写的哦
}
此时user 类内容如下:
public class user {
private integer id;
private string name;
private integer age;
private string sex;
//setters, getters, tostring() 方法此处省略不写,但是实际开发需要写的哦
}
转换model
此时 student 和 user 的属性名字都相同那么转换接口就是
import org.mapstruct.mapper;
@mapper(componentmodel = "spring")
public interface usermapping {
/**
* student 转化为 user
* @param student
* @return
*/
user studenttouser(student student);
}
程序运行前要先编译 mvn clean compile , 从而mapstruct框架生