mapstruct+lombok实现DO到DTO映射

1.配置

<org.mapstruct.version>1.3.0.Final</org.mapstruct.version>
<dependency>
    <groupId>org.mapstruct</groupId>
    <artifactId>mapstruct</artifactId>
    <version>${org.mapstruct.version}</version>
</dependency>

<dependency>
    <groupId>org.mapstruct</groupId>
    <artifactId>mapstruct-processor</artifactId>
    <version>${org.mapstruct.version}</version>
    <scope>provided</scope>
</dependency>

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

2.编写代码

DO:

@Data
@AllArgsConstructor
public class User {
    private String userName;
    private Integer age;
    private String address;
    private Integer sex;
    private Date birthday;
}

DTO:

@Data
public class UserDto {
    private String name;
    private Integer age;
    private String sex;
    private String addr;
    private String birthday;
}

MAPPER:

@Mapper
public interface UserMapper {

    UserMapper INSTANCE = Mappers.getMapper(UserMapper.class);

    @Mappings({
            @Mapping(source = "userName",target = "name"),
            @Mapping(source = "address",target = "addr"),
            @Mapping(source = "birthday",target = "birthday",dateFormat = "yyyy-MM-dd HH:mm:ss")
    })
    UserDto userToUserDto(User user);
}

测试:

@Test
public void test() {
    User user = new User("xm",20,"sz",1,new Date());
    UserDto userDto = UserMapper.INSTANCE.userToUserDto(user);
    System.out.println(userDto);
}

版权声明:本文为u010674648原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。