Spring Boot用mapstruct实现VO类和实体类转换

  VO类和实体类的转换是我们写业务逻辑代码中很经常用到的东西,最近我们项目组规定统一用mapstruct来做,mapstruct是在程序编译的时候就已经生成了VO类和实体类的转换类,这样子就不用在程序运行的时候才去转换,减少了性能上的损耗。

Maven文件配置:


    org.mapstruct
    mapstruct-jdk8
    1.3.0.Final


    org.mapstruct
    mapstruct-processor
    1.3.0.Final
    true

新建转换类,是一个接口:

@Mapper(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE,
        componentModel = "spring",
        injectionStrategy = InjectionStrategy.FIELD)
public interface TestMapper {

    /**
     * 实体类转为VO类
     * @param testModule
     * @return
     */
    TestVO dormCheckDetailToDormCheckDetailVO(TestModule testModule);

    /**
     * 列表类的转换
     * @param list
     * @return
     */
    List dormCheckDetailToPageVo(List list);
}

转换关系的字段还可以用@Mappings注解自行设置匹不匹配:

 /**
     * 实体类转为VO类
     * @param testModule
     * @return
     */
    @Mappings({
            @Mapping(source = "date",target ="date",ignore = false)
    })
    TestVO dormCheckDetailToDormCheckDetailVO(TestModule testModule);

新建完转换类之后直接在业务层里面注入就可以用了:

 @Autowired
 private TestMapper testMapper;

 

你可能感兴趣的:(业务逻辑处理)