没有合适的资源?快使用搜索试试~ 我知道了~
首页MapStruct 1.2.0 参考指南
MapStruct 1.2.0 参考指南
需积分: 50 20 下载量 79 浏览量
更新于2023-03-16
评论
收藏 1.34MB PDF 举报
MapStruct是一个代码生成器的工具类,简化了不同的Java Bean之间映射的处理,所以映射指的就是从一个实体变化成一个实体。(带目录标签)
资源详情
资源评论
资源推荐
前言
这是MapStruct的参考文档,MapStruct是用于生成类型安全,高性能和无依赖bean映射代码的注释处理器。本指南涵盖了MapStruct提供
的所有功能。如果本指南不能回答所有问题,请加入MapStruct
Google小组
(https://groups.google.com/forum/?fromgroups#!forum/mapstruct-users)以获得帮助。
您在本指南中发现错字或其他错误?请通过在
MapStruct GitHub存储库中 (https://github.com/mapstruct/mapstruct)打开问题告诉我们,或
者,更好的是,帮助社区并发送拉取请求来修复它!
本作品按照
知识共享署名 - 相同方式共享4.0国际许可协议进行许可 (http://creativecommons.org/licenses/by-sa/4.0/)。
1.介绍
MapStruct是用于生成类型安全的bean映射类的Java
注释处理器 (http://docs.oracle.com/javase/6/docs/technotes/guides/apt/index.html)。
你所要做的就是定义一个映射器接口来声明任何需要的映射方法。在编译期间,MapStruct将生成此接口的实现。这个实现使用普通的Java
方法调用来源和目标对象之间的映射,即没有反射或类似。
与手写映射代码相比,MapStruct通过生成繁琐且容易出错的代码来节省时间。遵循约定而不是配置方法,MapStruct使用合理的默认值,
但在配置或实现特殊行为时不会采取任何步骤。
与动态映射框架相比,MapStruct具有以下优点:
通过使用普通方法调用而不是反射来快速执行
编译时类型安全性:只能映射彼此的对象和属性,不能将订单实体意外映射到客户DTO等。
在构建时清除错误报告,如果
映射不完整(并非所有目标属性都被映射)
映射不正确(无法找到适当的映射方法或类型转换)
2.设置
MapStruct是基于JSR 269 (http://www.jcp.org/en/jsr/detail?id=269)的Java注释处理器,因此可以在命令行构建中使用(javac,Ant,Maven
等),也可以在IDE中使用。
它包含以下工件:
org.mapstruct
:
mapstruct:包含所需的注释,如 @Mapping ; 在Java 8或更高版本中,使用org.mapstruct
:
mapstruct-jdk8代替它,
它利用了Java 8中引入的语言改进
org.mapstruct
:
mapstruct-processor:包含生成映射器实现的注释处理器
2.1。Apache Maven
对于基于Maven的项目,将以下内容添加到您的POM文件中以使用MapStruct:
示
例
1. Maven
配
置
如果您正在使用Eclipse IDE,请确保拥有当前版本的
M2E插件 (http://www.eclipse.org/m2e/)。当导入一个如上所示配置的
Maven项目时,只要保存一个映射器类型,它就会设置MapStruct注释处理器,使其在IDE中正确运行。整洁,不是吗?
要仔细检查一切是否按预期工作,请转至项目属性并选择“Java编译器”→“注释处理”→“工厂路径”。MapStruct处理器JAR
应在此处列出并启用。任何通过编译器插件配置的处理器选项(参见下文)都应列在“Java编译器”→“注释处理”下。
如果处理器没有启动,请检查是否启用了通过M2E配置注释处理器。为此,请转到“首选项”→“Maven”→“批注处理”并选
择“自动配置JDT APT”。或者,在
properties 您的POM文件部分指定以下内容:
<m2e.apt.activation>jdt_apt</m2e.apt.activation> 。
还要确保您的项目使用Java 1.6或更高版本(项目属性→“Java编译器”→“编译合规性级别”)。它不适用于旧版本。
2.2。
Gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
...
<properties>
<org.mapstruct.version>1.2.0.Final</org.mapstruct.version>
</properties>
...
<dependencies>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-jdk8</artifactId>
<version>${org.mapstruct.version}</version>
</dependency>
</dependencies>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
...
XML
将以下内容添加到您的Gradle构建文件中以启用MapStruct:
示
例
2. Gradle
配
置
您可以在GitHub上的
mapstruct-examples (https://github.com/mapstruct/mapstruct-examples/tree/master/mapstruct-on-gradle)项目中找到完整
的示例。
2.3。Apache Ant
将
javac 如下配置的任务添加到您的build.xml文件中,以便在基于Ant的项目中启用MapStruct。根据项目布局的需要调整路径。
示
例
3. Ant
配
置
您可以在GitHub上的
mapstruct-examples (https://github.com/mapstruct/mapstruct-examples/tree/master/mapstruct-on-ant)项目中找到完整的
示例。
2.4。配置选项
MapStruct代码生成器可以使用
注
释
处
理
器
选
项
进行配置。
当直接调用javac时,这些选项以-Akey = value的形式传递给编译器。当通过Maven使用MapStruct时,可以使用
options Maven处理器
插件配置中的元素传递任何处理器选项,如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
...
plugins {
...
id 'net.ltgt.apt' version '0.8'
}
dependencies {
...
compile 'org.mapstruct:mapstruct-jdk8:1.2.0.Final'
apt 'org.mapstruct:mapstruct-processor:1.2.0.Final'
}
...
GROOVY
1
2
3
4
5
6
7
8
9
...
<javac
srcdir="src/main/java"
destdir="target/classes"
classpath="path/to/mapstruct-jdk8-1.2.0.Final.jar">
<compilerarg line="-processorpath path/to/mapstruct-processor-1.2.0.Final.jar"/>
<compilerarg line="-s target/generated-sources"/>
</javac>
...
XML
剩余58页未读,继续阅读
Dodoro-hhl
- 粉丝: 0
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- ExcelVBA中的Range和Cells用法说明.pdf
- 基于单片机的电梯控制模型设计.doc
- 主成分分析和因子分析.pptx
- 共享笔记服务系统论文.doc
- 基于数据治理体系的数据中台实践分享.pptx
- 变压器的铭牌和额定值.pptx
- 计算机网络课程设计报告--用winsock设计Ping应用程序.doc
- 高电压技术课件:第03章 液体和固体介质的电气特性.pdf
- Oracle商务智能精华介绍.pptx
- 基于单片机的输液滴速控制系统设计文档.doc
- dw考试题 5套.pdf
- 学生档案管理系统详细设计说明书.doc
- 操作系统PPT课件.pptx
- 智慧路边停车管理系统方案.pptx
- 【企业内控系列】企业内部控制之人力资源管理控制(17页).doc
- 温度传感器分类与特点.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0