浅谈Mapstruct与JSR303介绍与使用

148 阅读1分钟

一、Mapstruct

1、官方地址

mapstruct.org/documentati…

2、简单使用指栏介绍

www.pczh.cn/news/24203.…

3、常见坑点操作

a、表达式的使用

@mappings({
@mapping(target="",expression="java()")
})

例子:www.kailing.pub/article/ind…

b、Mapstruct中使用lombok@Builder的坑

例子:events.jianshu.io/p/4f7b4f4bf…

在lombok和mapstruct同时使用时,一定要注意将编译顺序指定一下,不然mapstruct无法生成实现类无法使用

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <annotationProcessorPaths>
                    <path>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                        <version>${lombok.version}</version>
                    </path>
                    <path>
                        <groupId>org.mapstruct</groupId>
                        <artifactId>mapstruct-processor</artifactId>
                        <version>${org.mapstruct.version}</version>
                    </path>
                    <path>
                        <!-- 如果是0.1.0 有可能出现生成了maptruct的实现类,但该类只创建了对象,没有进行赋值 -->
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok-mapstruct-binding</artifactId>
                        <version>0.2.0</version>
                    </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>
    </plugins>
</build> 

4、@Mapper注解的用法

例子:zhuanlan.zhihu.com/p/576308775

二、JSR303

1、官网地址

jcp.org/en/jsr/stag…

2、常用注解说明

image.png

3、@Valid 与 @Validated区别

例子:blog.csdn.net/qq_33753147…

4、多注解统一异常处理细节

例子:www.cnblogs.com/codervivi/p…