欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-30 21:56:09
...

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

Maven文件配置:

<dependency>
    <groupId>org.mapstruct</groupId>
    <artifactId>mapstruct-jdk8</artifactId>
    <version>1.3.0.Final</version>
</dependency>
<dependency>
    <groupId>org.mapstruct</groupId>
    <artifactId>mapstruct-processor</artifactId>
    <version>1.3.0.Final</version>
    <optional>true</optional>
</dependency>

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

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

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

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

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

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

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

 @Autowired
 private TestMapper testMapper;

 

相关标签: 业务逻辑