mapstruct使用

简介

官网
MapStruct 是一个代码生成器,它基于配置方法的约定,极大地简化了 Java Bean 类型之间映射的实现。

生成的映射代码使用普通方法调用,因此快速、类型安全且易于理解。

引入依赖

		<!-- mapStruct 对象转换 -->
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct</artifactId>
            <version>1.4.2.Final</version>
        </dependency>
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct-processor</artifactId>
            <version>1.4.2.Final</version>
        </dependency>

例子

假设我们有一个表示汽车的类Car,和一个随附的数据传输对象 CarDto。

这两个类非常相似,只是属性具有不同的名称,并且类型属性在类中属于特殊的枚举类型,但在 DTO 中是纯字符串。

public class Car {
    
    
 
    private String make;
    private int numberOfSeats;
    private CarType type;
 
    //constructor, getters, setters etc.
}
public class CarDto {
    
    
 
    private String make;
    private int seatCount;
    private String type;
 
    //constructor, getters, setters etc.
}

要生成映射器以从对象创建对象,需要定义映射器接口

方式一:工厂方式

// 注意这个Mapper不是MybatisPlus中的Mapper注解
@Mapper
public interface CarMapping {
    
    
 
    CarMapper INSTANCE = Mappers.getMapper( CarMapper.class ); 
 
    @Mapping(source = "numberOfSeats", target = "seatCount")
    CarDto carToCarDto(Car car); 
}

方式二:依赖注入方式

// 注意这个Mapper不是MybatisPlus中的Mapper注解
@Mapper(componentModel = "spring")
public interface CarMapping {
    
    

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

项目编译运行后可以在target目录的classes下看到生成的实现类

参考

参考博客

猜你喜欢

转载自blog.csdn.net/weixin_43636205/article/details/130282205