美文网首页
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使用

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