`

ModelMapper:从对象到对象的映射库

    博客分类:
  • Java
阅读更多

ModelMapper 是一个从对象到对象(object-to-object)的框架,能将Java Bean(Pojo)对象从一种表现形式转化为另一种表现形式。它采用“通过约定来配置”的方式,自动匹配不同的对象映射,同时具备满足某些特殊需求的高级功能。这与.NETAutoMapper 库很类似(但不是直接移植)。

ModelMapper能用更加紧凑的代码对Java对象进行映射,在更简单的情况下甚至可以实现零配置。它支持以下特性:

  • 基于名称的对象属性映射
  • 复制公开的、受保护的和私有的字段
  • 略过某些字段
  • 可用转换器来影响映射(如将字符串转换为小写)
  • 在不同类型的字段间进行映射(如将字符串转换为数字)
  • 采用不同的条件进行映射
  • 默认条件不充分时采用松散的映射策略
  • 对映射过程进行验证以确保所有字段都被处理
  • 对特殊情况下的映射过程进行完全可定制化的控制
  • GuiceSpring 集成

在企业应用中,将对象从一种形式转换成另一种是非常普遍的模式。例如,某领域模型从数据库中加载,并需要在GUI上显示给用户。其原始数据库格式会包含大量用于生命周期的属性,而屏幕前的用户可能只关心其中的一两个字段。所以很多时候,用于数据库的Pojo(JPA 实体)与用于GUI的Pojo是不同的。这正是ModelMapper试图解决的问题。一般来说,当信息在企业应用内的层之间发生改变时,就会发生对象转换。

其他会发生对象转换的场景包括:

  • 多个对象聚合成一个
  • 在已存在的对象中计算一些额外的元数据
  • 转换对象以便发送到外部系统中
  • 未定义的属性里赋予默认值
  • 通过某种方式来转换已有的属性(对象自映射)

ModelMapper已经位于Maven Central中。更多信息请查看用户手册Javadoc 。源代码可在Github 上下载。

 

查看英文原文 :ModelMapper: An Object To Object Mapping Library

转自: http://www.infoq.com/cn/news/2012/11/modelmapper

分享到:
评论

相关推荐

    ModelMapper:一个基于注解自动将json字符串映射到模型对象的android库

    ModelMapper是一个Android库,可帮助解析JSON字符串并将其自动映射到模型类的对象。 这是您的json。 { " name " : " Eunjae Lee " , " noshow " : false , " albuminfo " : { " count " : 10 } } 这是您的...

    modelmapper:智能对象映射

    ModelMapper是一个智能的对象映射库,可自动将对象相互映射。 它使用基于约定的方法,同时提供用于处理特定用例的简单重构安全API。 访问了解更多信息。 模组 在v2.0中,ModelMapper提供了用于第三库集成的模块,...

    modelmapper-2.3.3.zip

    ModelMapper就是这样一款强大的库,它为Java开发者提供了便捷的对象映射解决方案。本篇将详细解析ModelMapper 2.3.3版本的核心功能和使用方法。 首先,ModelMapper 2.3.3是一个轻量级的Java对象映射框架,它的主要...

    Python库 | modelmapper-1.2.1-py3-none-any.whl

    `modelmapper`是一个Python库,专门用于对象关系映射(Object-Relational Mapping,ORM),这是一种编程技术,它允许开发者使用面向对象的方式来操作数据库。ORM在Python中非常常见,它简化了数据库操作,使得数据库...

    h-model-mapper:一个 JavaScript 模型映射器

    `h-model-mapper` 可以处理这些复杂情况,将嵌套的对象或数组映射到目标对象中。 4. **默认值设定**:在映射过程中,可能会遇到某些属性在源对象中不存在的情况,这时可以设置默认值。`h-model-mapper` 提供了这样...

    modelmapper-bug:重现Modelmapper的错误

    ModelMapper的错误 该项目演示了如何使用ModelMapper重现错误 如何运行项目 该项目是带有Java 11的简单Maven项目 测试框架是JUnit 5和AssertJ 该测试演示了该错误。 分析 有一些SourceType的列表->该列表元素的映射...

    mybatis学习总结:对象关系映射的xml配置实现

    在IT行业中,MyBatis是一个广泛使用的持久层框架,它允许开发者将对象关系映射(Object-Relational Mapping,ORM)以XML配置文件的方式进行定义,从而极大地简化了数据库操作。这篇“mybatis学习总结:对象关系映射...

    modelmapperexample:示例项目演示了使用ModelMapper和Lombok映射对象有多么容易

    ModelMapper示例示例项目演示了使用和映射对象有多么容易。笔记: Lombok需要安装Lombok IDE插件来编译代码(以实现动态代码生成)。 您也可以使用Maven进行编译: mvn compile (不需要任何其他插件)控制台输出 # ...

    SpringBoot_DTO:使用ModelMapper制作的API,而不是笨拙的getset方法,这些方法很容易变得不知所措

    ModelMapper是一个智能对象映射库,它自动化了对象之间的转换过程,使得数据传输对象(DTO,Data Transfer Objects)的创建变得更加简洁。DTO是用于在服务层和视图层之间传输数据的对象,它们通常用于防止暴露过多的...

    model-mapper:用于将模型展平为视图模型的实用程序

    模型映射器 您可以使用此工具将数据从嵌套模型复制到扁平视图模型中。 您可以通过创建地图来告诉映射器如何创建视图模型。 这可以通过createMap函数来完成。 您还可以createMapsFromDir并将映射器指向包含地图的目录...

    java不同对象及集合的多次复制

    - **ModelMapper库**:提供了`ModelMapper`类,可以通过配置注解自动映射对象,简化了复制过程。 4. **集合与集合的复制** - **使用流(Stream)API**:Java 8引入的流API可以方便地实现集合到集合的复制,如`...

    modelmapper-provider-issue-tests:用于探索与ModelMapper提供程序有关的问题的示例项目

    ModelMapper是Java中一个流行的对象映射库,它帮助开发者将一个对象的属性值自动映射到另一个对象上,大大简化了数据转换的过程。然而,如同任何复杂软件一样,ModelMapper也可能遇到一些特定情况下的问题,比如类型...

    开源项目-jeevatkm-go-model.zip

    Go Model Mapper作为数据访问层的一个工具,能够自动将数据库查询结果转换为Go语言中的结构体实例,反之亦然,将结构体对象保存到数据库中。这种映射机制是许多ORM(对象关系映射)框架的核心功能,它消除了手动编写...

    java自动生成model和mapper的工具

    Model类代表数据库中的表结构,而Mapper接口则用于执行SQL查询并映射结果到Java对象。手动编写这些文件不仅耗时,而且容易出错。因此,"java自动生成model和mapper的工具"应运而生,旨在提高开发效率,减少重复劳动...

    rom-mapper:该项目已移至rom-rbrom

    在 Ruby 开发领域,`rom-mapper` 是一个重要的库,它曾是 ROM(Relational Object Mapper)框架的一部分,用于处理数据映射和对象关系映射。ROM 框架本身是一个现代、灵活的持久层解决方案,它支持多种数据库,并...

    dozer:推土机映射示例

    下面我们将深入探讨Dozer的核心特性以及如何使用它进行对象映射: 1. **核心功能**: - **自动映射**:Dozer会自动检测源对象和目标对象的公共字段,并进行映射。 - **深度映射**:支持嵌套对象和集合的映射,...

    Laravel开发-jsonmapper-model-generator

    JsonMapper是一个PHP库,它的主要功能是将JSON对象映射到PHP类的实例上,这在处理API响应或从JSON格式的数据源中提取信息时非常有用。它可以自动将JSON对象的键映射到类的公共属性,并且支持嵌套的JSON结构。然而,...

    mybatis数据表生成model,mapper

    在SSM项目中,数据表与Java对象(Model)以及映射文件(Mapper和mapper.xml)之间的关系是至关重要的。本教程将详细讲解如何在SSM框架下,根据数据表自动生成Model、Mapper接口和对应的mapper.xml配置文件,从而提高...

    generic-mapper:一个帮助程序项目,可使用源类型和目标类型访问Mapstruct创建的映射器

    @Mapper ( componentModel = " spring " )public interface FruitMapper extends GenericMapper< Fruit> {} 将GenericMapperService注入您的服务并查找映射器。 @Autowiredprivate GenericMapperService ...

    EntityCopyDemo

    ModelMapper是一个智能对象映射库,它可以自动映射对象属性,大大简化了对象拷贝的过程。只需创建一个ModelMapper实例,然后调用`map()`方法,它会自动检测源对象和目标对象之间的对应关系并进行映射。同样,对于...

Global site tag (gtag.js) - Google Analytics