阿里巴巴|Java:帮助Java开发人员进行Bean映射的7大框架

阿里巴巴|Java:帮助Java开发人员进行Bean映射的7大框架

文章图片


作为一名Java编程新手 , 你可能想知道如何在不使用大量类似代码的情况下构建一个大型应用程序 , 这些代码会让你精疲力尽 。

在 Java 上构建包含多个层的大型应用程序需要域、持久性和数据传输对象 (DTO) 等模型 。 应用程序通常由不同但相似的对象模型组成 , 其中数据可能相似但结构和目标不同 。 在执行大型应用程序时转换不同类型的数据或对象以用于业务决策或数据隐藏至关重要 。
有了对象映射 , 在隔离不同的模型时 , 将一个模型转换成另一个模型变得更加容易 。 虽然将一个对象映射到另一个对象是很常见的 , 但是这通常是迭代的和乏味的 , 因为两个类具有相似或相同的映射属性 。 幸运的是 , 有几个Java映射框架可以用来递归地将数据从一个对象复制到另一个对象 。
Java中映射的顶级框架
dOOv
Domain Object Oriented Validation(dOOv)是一个用于领域模型验证和映射的API 。 dOOv使用代码生成、注释和类型安全的特定于域的语言(DSL)来使映射和验证更加容易和快速 。 节省你的时间和精力 。
dOOv由dOOv核心、dOOv生成器和dOOV断言组成 , 其中核心包含抽象语法树(AST)、DST和注释 , 生成器由字段信息和模型映射的代码生成器组成 , 断言包括AssertJ断言 。
JMapper
JMapper 是基于 Javassist 的 Java 映射框架 , 它使用字节码操作进行快速映射 。 JMapper 以零内存消耗提供动态转换、关系映射和静态代码性能的优势 。 它接受两个类的输入 , Destination(将创建或修改的实例)和 Source(包含数据的实例) 。 所以在映射之前 , 需要在Source和Destination之间配置一个类 , 然后调用Get方法 。

MapStructMapStruct是用于高性能和类型安全JavaBeans类映射器的最常用的Java注释处理器之一 。 它带有内置的转换和合理的默认值 , 在实现或配置特定行为时不会打扰你 。
MapStruct通过尽可能自动化来简化映射 , 它在编译时生成bean映射 , 以确保高性能、彻底的错误检查和快速的反馈 。
MapStruct是一个注释处理器 , 它被插入到Java的编译器中 , 可以在你首选的集成开发环境(IDE)或命令行版本(如Gradle和Maven)中使用 。
要使用MapStruct , 你需要定义mapper接口 , 声明所有必需的映射方法 。
ModelMapper
作为一个智能映射库 , ModelMapper能够自动映射对象 。 它提供了一个简单的重构安全API , 并使用传统的方法来处理某些用例 。
ModelMapper是一个很棒的Java Bean Mapper , 因为它通过确定一个对象如何通过约定自动映射到另一个对象 , 使对象映射变得更容易 , 所以你不必担心手动映射 。
ReMap
ReMap是一个Java映射库 , 帮助开发人员逐个属性地简化对象转换 , 同时减少映射器类的单元测试 。 通过JCenter和Maven Central可以很容易地访问ReMap 。

OrikaOrika是一个JavaBean到Bean的映射框架 , 它迭代地将数据从一个对象复制到另一个对象 。 在开发多层web应用程序时 , 强烈推荐使用它 , 因为Orika为Java Bean映射构建了有效、全面和健壮的解决方案 。
Orika通过使用字节码生成器以最小的开销使Java Beans的映射速度大大加快 。
Dozer
Dozer是一个Java映射框架 , 它使用APL/XML配置和注释将数据从一个对象复制到另一个对象 。 它是一个开源、健壮、灵活、可配置、可重用的通用映射框架 , 支持复杂、简单、隐式、显式、双向和递归的JavaBeans映射 。 如果你想避免在将数据从一个bean复制到另一个bean时使用不必要的代码 , Dozer是理想的选择 。 它不仅支持beans的映射 , 而且还自动转换数据类型 , 以便用dto映射类 。