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);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章