1、官网地址 :
https://mapstruct.org/documentation/stable/reference/html/#_custom_accessor_naming_strategy
目前最新版本 :1.5.3.Final
2、是什么?
MapStruct是基于JSR 269的Java注释处理器,因此可以在命令行构建(javac,Ant,Maven等)以及您的IDE中(有插件:mapstruct support[非必需下载])使用。
它包括以下工件:
-
org.mapstruct:mapstruct:包含所需的注释,例如@Mapping
-
org.mapstruct:mapstruct-processor:包含生成映射器实现的注释处理器
为什么不是直接使用 BeanUtils 的 copyProperties ?
BeanUtils 只能同属性映射,或者在属性相同的情况下,允许被映射的对象属性少;但当遇到被映射的属性数据类型被修改或者被映射的字段名被修改,则会导致映射失败。
3、怎么用?
1)maven依赖
- org.mapstruct:mapstruct:包含了一些必要的注解,例如@Mapping。
- 若我们使用的JDK版本高于1.8,当我们在pom里面导入依赖时候,建议使用坐标是:org.mapstruct:mapstruct-jdk8,这可以帮助我们利用一些Java8的新特性。
- org.mapstruct:mapstruct-processor:注解处理器,根据注解自动生成mapper的实现。
<!--mapStruct依赖 高性能对象映射-->
<!--mapstruct核心-->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.5.3.Final</version>
</dependency>
<!--使用的JDK版本高于1.8,帮助我们利用一些Java8的新特性-->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-jdk8</artifactId>
<version>1.5.3.Final</version>
</dependency>
<!--mapstruct编译-->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.5.3.Final</version>
</dependency>
4、代码(参考文档)
https://blog.csdn.net/qq_44732146/article/details/119968376?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166556325816800182795803%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=166556325816800182795803&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-119968376-null-null.142v53control,201v3control_1&utm_term=mapstruct&spm=1018.2226.3001.4187
https://program.blog.csdn.net/article/details/105674343?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-105674343-blog-119968376.pc_relevant_3mothn_strategy_recovery&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-105674343-blog-119968376.pc_relevant_3mothn_strategy_recovery&utm_relevant_index=2