美文网首页
mapstruct使用

mapstruct使用

作者: 不二不二熊 | 来源:发表于2020-10-02 09:35 被阅读0次
一、maven依赖
    <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct-jdk8</artifactId>
            <version>1.3.1.Final</version>
        </dependency>
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct-processor</artifactId>
            <version>1.3.1.Final</version>
        </dependency>
二、plugin插件
<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>org.mapstruct</groupId>
                            <artifactId>mapstruct-processor</artifactId>
                            <version>1.3.1.Final</version>
                        </path>
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>1.18.12</version>
                        </path>
                    </annotationProcessorPaths>
                </configuration>
            </plugin>

注意:lombok插件必须同时配置,如果你使用了lombok插件的话

三、DTO以及DO定义
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserDO {
    private Integer useId;
    private String useName;
    private String useSex;
    private Integer useAge;
    private String userMovie;
}
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserDto {
    private String useName;
    private String age;
    private String movie;
}
四、mapper定义
@Mapper
public interface ModelConvertor {
    ModelConvertor INSTANCE = Mappers.getMapper(ModelConvertor.class);
    /**
     * UserDO->userDTO
     * @param user userDO模型
     * @return userDTO实体对象
     */
    @Mappings({
            @Mapping(target = "age", source = "useAge"),
            @Mapping(target = "movie", source = "userMovie")
    })
    UserDto toUser(UserDO user);
}
五、使用
@RestController
@RequestMapping("/user")
@Slf4j
public class UseController {
    
    @PostMapping("/console")
    public ResultDTO<UserDto> queryUser(@RequestBody UserDto userDto) {
        return ResultDTO.success(userDto);
    }
    @PostMapping("/test")
    public ResultDTO<UserDto> test(@RequestBody User user) {
        UserDto userDto = ModelConvertor.INSTANCE.toUser(user);
        return ResultDTO.success(userDto);
    }
}

相关文章

  • MapStruct使用

    背景 在一个成熟可维护的工程中,细分模块后,domian工程最好不要被其他工程依赖,但是实体类一般存于domain...

  • MapStruct 使用

    对象映射工具的由来 大型项目采用分层开发,每层的数据模型都不同:在持久化层,模型层为 PO(Persistent ...

  • mapstruct使用

    一、maven依赖 二、plugin插件 注意:lombok插件必须同时配置,如果你使用了lombok插件的话 三...

  • mapStruct使用

    https://mapstruct.org/

  • MapStruct使用

    1.对象属性映射的苦恼 在日常开发中,常常涉及到接收Request对象,属性映射到内部交互的VO对象、甚至需要进一...

  • mapstruct使用

    增驾依赖

  • mapstruct使用

    参考

  • MapStruct实现对象映射

    1 序 MapStruct是一个属性映射工具,只需要使用@Mapper注解标注的映射接口。MapStruct就会自...

  • mapstruct 和lombok 结合之后mapstruct生

    lombok和mapstruct配合转换bean后,mapstruct生成空的实现. 如果出现mapstruct和...

  • Mapstruct-使用

    前言:最近在项目中看到有同事使用这样的注解,之前没有见到过,立即百度了下,噢,原来是一个属性映射工具,只需要定义一...

网友评论

      本文标题:mapstruct使用

      本文链接:https://www.haomeiwen.com/subject/zxhsuktx.html