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" );
        }
    }
    
  • 相关阅读:
    洛谷—— P2234 [HNOI2002]营业额统计
    BZOJ——3555: [Ctsc2014]企鹅QQ
    CodeVs——T 4919 线段树练习4
    python(35)- 异常处理
    August 29th 2016 Week 36th Monday
    August 28th 2016 Week 36th Sunday
    August 27th 2016 Week 35th Saturday
    August 26th 2016 Week 35th Friday
    August 25th 2016 Week 35th Thursday
    August 24th 2016 Week 35th Wednesday
  • 原文地址:https://www.cnblogs.com/fengzhentian/p/13508918.html
Copyright © 2011-2022 走看看