程序员Spring BootJava技术升华

MapStruct

2017-12-19  本文已影响3238人  聪明的奇瑞

概述

使用例子

<dependency>
    <groupId>org.mapstruct</groupId>
    <artifactId>mapstruct-jdk8</artifactId>
    <version>1.2.0.CR1</version>
</dependency>
<dependency>
    <groupId>org.mapstruct</groupId>
    <artifactId>mapstruct-processor</artifactId>
    <version>1.2.0.CR1</version>
    <scope>provided</scope>
</dependency>
----------商品信息----------
@Data
public class GoodInfo {
    private Long id;
    private String title;
    private double price;
    private int order;
    private Long typeId;
}
----------商品类型----------
@Data
public class GoodType {
    private Long id;
    private String name;
    private int show;
    private int order;
}
@Data
public class GoodInfoDTO {
    private String goodId;
    private String goodName;
    private double goodPrice;
    private String typeName;
}
@Mapper(componentModel = "spring")
public interface GoodInfoMapper {
    @Mappings({
            @Mapping(source = "type.name",target = "typeName"),
            @Mapping(source = "good.id",target = "goodId"),
            @Mapping(source = "good.title",target = "goodName"),
            @Mapping(source = "good.price",target = "goodPrice")
    })
    GoodInfoDTO fromGoodInfoDTO(GoodInfo good, GoodType type);
}
@Autowired
private GoodInfoMapper goodInfoMapper;

@RequestMapping(value = "/detail/{id}")
public GoodInfoDTO details(@PathVariable("id")Long id){
    GoodInfo goodInfo = goodInfoRepository.findOne(id);
    GoodType goodType = goodTypeRepository.findOne(goodInfo.getId());
    return goodInfoMapper.fromGoodInfoDTO(goodInfo,goodType);
}

MapStruct注解

上一篇 下一篇

猜你喜欢

热点阅读