zoukankan      html  css  js  c++  java
  • MapStruct

    GitHub

    https://github.com/mapstruct/mapstruct

    简介

    使用MapStruct

    Maven

    For Maven-based projects, add the following to your POM file in order to use MapStruct (the dependencies are available at Maven Central):

    对于基于Maven的项目,请将以下内容添加到POM文件中,以便使用MapStruct(依赖项在Maven Central上提供):

    ...
    <properties>
        <org.mapstruct.version>1.3.1.Final</org.mapstruct.version>
    </properties>
    ...
    <dependency>
        <groupId>org.mapstruct</groupId>
        <artifactId>mapstruct</artifactId>
        <version>${org.mapstruct.version}</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.mapstruct</groupId>
        <artifactId>mapstruct-processor</artifactId>
        <version>${org.mapstruct.version}</version>
        <scope>compile</scope>
    </dependency>
    ...
    

    IDE 插件

    建议安装MapStruct插件

    IDE 插件名称
    IntelliJ IDEA MapStruct Support

    示例

    准备以下两组实体类

    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public class Car {
        private String make;
        private int numberOfSeats;
        private CarType type;
    }
    
    import lombok.Data;
    
    @Data
    public class CarDto {
        private String make;
        private int seatCount;
        private String type;
    }
    
    public enum CarType {
        SEDAN;
    }
    

    映射接口

    import org.mapstruct.Mapper;
    import org.mapstruct.Mapping;
    import org.mapstruct.factory.Mappers;
    
    @Mapper
    public interface CarMapper {
    
        CarMapper INSTANCE = Mappers.getMapper(CarMapper.class);
    
        @Mapping(source = "numberOfSeats", target = "seatCount")
        CarDto carToCarDto(Car car);
    }
    

    单元测试类

    import org.junit.jupiter.api.Test;
    
    import static org.assertj.core.api.Assertions.assertThat;
    
    public class CarMapperTests {
        @Test
        public void shouldMapCarToDto() {
            //given
            Car car = new Car( "Morris", 5, CarType.SEDAN );
    
            //when
            CarDto carDto = CarMapper.INSTANCE.carToCarDto( car );
    
            //then
            assertThat( carDto ).isNotNull();
            assertThat( carDto.getMake() ).isEqualTo( "Morris" );
            assertThat( carDto.getSeatCount() ).isEqualTo( 5 );
            assertThat( carDto.getType() ).isEqualTo( "SEDAN" );
        }
    }
    
  • 相关阅读:
    Distributed System
    APP专项测试之兼容性测试
    面试如何正确谈薪?
    跳槽季,如何做好技术面试准备?
    Appium基础
    设置安装程序位置
    获取文件版本号
    28-PV&PVC
    Docker-文件拷贝
    Kubemark压测常用命令
  • 原文地址:https://www.cnblogs.com/fengzhentian/p/13508918.html
Copyright © 2011-2022 走看看