Skip to content

mapstruct 的使用

MapStruct 工具

你看一下项目中的 这个 Mapper 注解,这里使用的就是 package org.mapstruct; 这个框架内容

@Mapper  
public interface StoreActivityProductServiceMapper {  
  
    StoreActivityProductServiceMapper INSTANCE = Mappers.getMapper(StoreActivityProductServiceMapper.class);  
  
    /**  
     * Convert entity to dto.     * @param request  
     * @return {@link StoreActivityListQuery }  
     */    
     StoreActivityListQuery toStoreActivityListQuery(StoreActivityListRequest request); 
     
}

代码层的使用一般就是

StoreActivityListQuery query = StoreActivityProductServiceMapper.INSTANCE.toStoreActivityListQuery(request);

更多的用法可以问一下大模型

目前 soms 项目中的用法,注意一下第一个和第三个就行,后面如果其他项目有用到,自己注意一下就行。

<annotationProcessorPaths>
    <!-- MapStruct Plus 注解处理器 -->
    <path>
        <groupId>io.github.linpeilie</groupId>
        <artifactId>mapstruct-plus-processor</artifactId>
        <version>${mapstruct-plus.version}</version>
    </path>
    <!-- Lombok 注解处理器 -->
    <path>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>${lombok.version}</version>
    </path>
    <!-- 解决 Lombok 与 MapStruct 兼容问题的处理器 -->
    <path>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok-mapstruct-binding</artifactId>
        <version>0.2.0</version>
    </path>
</annotationProcessorPaths>

看在跟目录pom下是引入了 相关的启动器。

<dependency>  
    <groupId>io.github.linpeilie</groupId>  
    <artifactId>mapstruct-plus-spring-boot-starter</artifactId>  
    <version>${mapstruct-plus.version}</version>  
</dependency>