帮酷LOGO
  • 显示原文与译文双语对照的内容
文章标签:处理器  PROC  映射器  annotation  mappers  type  ann  bean  
An annotation processor for generating type-safe bean mappers

  • 源代码名称:mapstruct
  • 源代码网址:http://www.github.com/mapstruct/mapstruct
  • mapstruct源代码文档
  • mapstruct源代码下载
  • Git URL:
    git://www.github.com/mapstruct/mapstruct.git
  • Git Clone代码到本地:
    git clone http://www.github.com/mapstruct/mapstruct
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/mapstruct/mapstruct
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • MapStruct - Java映射,简单的方法 !

    Latest Stable VersionLatest VersionLicense

    Build StatusCoverage StatusGitter

    什么是 MapStruct?

    MapStruct是一个 Java 注解处理器,用于为 Java bean类生成类型安全和高性能的映射器。

    要在两个类型之间创建映射,请声明如下所示的映射器类:

    @MapperpublicinterfaceCarMapper {
     CarMapperINSTANCE=Mappers.getMapper( CarMapper.class );
     @Mapping(source="numberOfSeats", target="seatCount")
     CarDtocarToCarDto(Carcar);
    }

    在编译时MapStruct将生成这里接口的一个实现。 生成的实现使用普通的Java方法调用来对源对象和目标对象进行映射,而 换句话说,没有涉及到。 默认情况下,如果属性在源和目标中具有相同的名称,则可以以使用 @Mapping 和它的他几个注释来控制。

    MapStruct可以避免手工编写映射代码,这是一个繁琐且容易出错的。 生成器具有明确的默认值和许多内置的转换,但是在配置或者实现特殊行为时出现了。

    与运行在运行时MapStruct的映射框架相比,它具有以下优点:

    • 通过使用普通方法调用而不是反射来快速执行
    • 编译时类型安全:只有对象和属性映射映射,不能意外地将订单实体映射到客户DTO等。
    • 自包含代码,没有运行时依赖项
    • 如果在生成时清除错误报告,则
      • 映射不完整( 并非所有目标属性都被映射)
      • 映射不正确( 无法找到正确的映射方法或者类型转换)
    • 映射代码易于调试( 在生成器中的Bug 中,可以通过手动 比如 进行编辑)

    要求

    MapStruct需要 Java 1.6或者更高版本。

    使用 MapStruct

    MapStruct在 命令行 中工作,构建( 普通 javac,通过 Maven,Gradle,Ant 等等 ) 和 ide 。

    对于 Eclipse,开发( 请参见 https://github.com/mapstruct/mapstruct-eclipse ) 下有一个专门的插件,它超出了注释处理器的可以能性,提供了注释属性。

    Maven

    对于基于maven的项目,将以下内容添加到你的POM文件中,以便使用 MapStruct ( 可以从 Maven 中心获取依赖项):

    ...
    <properties>
     <org.mapstruct.version>1.2.0.Final</org.mapstruct.version>
    </properties>
    ...
    <dependencies>
     <dependency>
     <groupId>org.mapstruct</groupId>
     <artifactId>mapstruct</artifactId> <!-- OR use this with Java 8 and beyond: <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.6</source> <!-- or 1.7 or 1.8,.. --> <target>1.6</target>
     <annotationProcessorPaths>
     <path>
     <groupId>org.mapstruct</groupId>
     <artifactId>mapstruct-processor</artifactId>
     <version>${org.mapstruct.version}</version>
     </path>
     </annotationProcessorPaths>
     </configuration>
     </plugin>
     </plugins>
    </build>
    ...

    Gradle

    对于 Gradle,你需要沿着以下行进行操作:

    plugins {
     ...
     id 'net.ltgt.apt' version '0.8'}
    dependencies {
     ...
     compile 'org.mapstruct:mapstruct:1.2.0.Final'// OR use this with Java 8 and beyond: org.mapstruct:mapstruct-jdk8:... apt 'org.mapstruct:mapstruct-processor:1.2.0.Final'}...

    如果不使用依赖项管理工具,你可以从 SourceForge 获得分发包。

    文档和获取帮助

    要了解更多关于MapStruct的信息,请参考项目主页。参考文档详细介绍了所有提供的功能。 如果你需要帮助,请加入 mapstruct用户组。

    许可证

    MapStruct许可以证是在Apache许可以证版本 2.0 ("许可以证"),你可以能不使用它,除了符合许可以证。 你可以在 http://www.apache.org/licenses/LICENSE-2.0 获得许可证的副本。

    基于源代码的

    MapStruct使用 Maven 进行构建。 从源代码构建MapStruct需要 Java 8. 生成完整的项目运行

    mvn clean install

    从项目目录的root 。 要跳过分发模块,请运行

    mvn clean install -DskipDistribution=true

    链接



    文章标签:PROC  type  bea  generating  ann  annotation  处理器  映射器  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语