1. 程式人生 > 實用技巧 >mapstruct 入門指南

mapstruct 入門指南

1、mapstruct和其他對映工具的對比請參考以下地址

https://www.cnblogs.com/javaguide/p/11861749.html

2、pom.xml檔案中新增依賴,在使用lombok的時候mapstruct外掛會不生效,引入mapstruct-jdk8來解決問題

<dependency>
    <groupId>org.mapstruct</groupId>
    <artifactId>mapstruct-processor</artifactId>
    <version>1.3.0.Final</version>
</dependency>
<!-- 解決springboot 專案使用 lombok 外掛後,新增 mapstruct  外掛,maven 編譯時 mapstruct 外掛不起作用 -->
<dependency>
    <groupId>org.mapstruct</groupId>
    <artifactId>mapstruct-jdk8</artifactId>
    <version>1.3.0.Final</version>
</dependency>

3、新增外掛

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <annotationProcessorPaths>
                <path>
                    <groupId>org.mapstruct</groupId>
                    <artifactId>mapstruct-processor</artifactId>
                    <version>1.3.0.Final</version>
                </path>
            </annotationProcessorPaths>
        </configuration>
    </plugin>
</plugins>

4、idea安裝外掛

5、程式碼編寫

1)舉例car實體

public class Car {

    private String make;
    private int numberOfSeats;
    private CarType type;
}

2)舉例cardto

public class CarDto {

    private String make;
    private int seatCount;
    private String type;
}

3)舉例mapper

@Mapper
public interface CarMapping {

    CarMapping INSTANCE = Mappers.getMapper( CarMapping .class );

    @Mapping(source = "numberOfSeats", target = "seatCount")
    CarDto carToCarDto(Car car);
}

4)使用

CarDto carDto=CarMapping.INSTANCE.carToCarDto(car);

6、高階使用參考

https://blog.csdn.net/gaochuanlove/article/details/101061474