引入依赖
<!--mapStruct依赖 高性能对象映射-->
<!--mapstruct核心-->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.5.0.Beta1</version>
</dependency>
<!--mapstruct编译-->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.5.0.Beta1</version>
</dependency>
创建Person类
package org.example.Mapstruct;
import lombok.Data;
@Data
public class Person {
private String id;
}
创建PersonDTO
package org.example.Mapstruct;
import lombok.Data;
@Data
public class PersonDTO {
String describeid;
private String personName;
private String age;
private String source;
private String height;
}
创建映射关系接口
package org.example.Mapstruct;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
@Mapper
public interface UserRoleMapper {
/**
* 获取该类自动生成的实现类的实例
* 接口中的属性都是 public static final 的 方法都是public abstract的
*/
UserRoleMapper INSTANCES = Mappers.getMapper(UserRoleMapper.class);
/**
* 这个方法就是用于实现对象属性复制的方法
*
* @Mapping 用来定义属性复制规则 source 指定源对象属性 target指定目标对象属性
*
* @param person 这个参数就是源对象,也就是需要被复制的对象
* @return 返回的是目标对象,就是最终的结果对象
*/
@Mappings({
@Mapping(source = "id", target = "describeid")
})
PersonDTO toUserRoleDto(Person person);
}
测试运行
package org.example.Mapstruct;
public class testmain {
public static void main(String[] args) {
UserRoleMapper userRoleMapperInstances = UserRoleMapper.INSTANCES;
Person p = new Person();
p.setId("a");
PersonDTO b = userRoleMapperInstances.toUserRoleDto(p);
System.out.println(b.getDescribeid());
}
}