50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

  • 2012-11-26
  • 本文字数:795 字

    阅读完需:约 3 分钟

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

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

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

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

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

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

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

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


感谢姚琪琳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2012-11-26 10:104288

评论

发布
暂无评论
发现更多内容

到手的股权,又没了 | 法庭上的CTO(2)

赵新龙

股权 CTO 28天写作

11.8作业

张荣召

11.3安全架构:反垃圾与风控

张荣召

11.4高可用:可用性度量

张荣召

11.6高可用:架构运维方案

张荣召

【Java基础】-- instanceof 用法详解

秦怀杂货店

Java

Mybatis【6】-- Mybatis插入数据后自增id怎么获取?

秦怀杂货店

mybatis

第七周作业

孤星

学习总结--week11

张荣召

架构师训练营第11周课后作业

吴传禹

极客大学架构师训练营

使用PicGo存储markdown图片(阿里云或者github)

秦怀杂货店

markdown 图床

从华为看VUCA时代如何让组织不断乘风破浪?

Alan

华为 战略思考 组织发展 组织活力

架构词典:缓存

lidaobing

缓存 架构

【java基础】-- java接口和抽象类的异同分析

秦怀杂货店

Java 接口

11.1安全架构:Web攻击与防护

张荣召

架构师训练营第 1 期第 11 周学习总结

好吃不贵

极客大学架构师训练营

系统性能的主要技术指标以及变化

皮蛋

JDBC【4】-- jdbc预编译与拼接sql对比

秦怀杂货店

sql JDBC

架构师训练营第 1 期 -- 第十一周作业

发酵的死神

极客大学架构师训练营

七、性能

Geek_28b526

架构师训练营第11周总结

吴传禹

极客大学架构师训练营

java集合【10】——— LinkedList源码解析

秦怀杂货店

Java 集合 linkedlist

Mybatis【5】-- Mybatis多种增删改查那些你会了么?

秦怀杂货店

Java mybatis JDBC

11.5高可用:提升系统可用性的架构方案

张荣召

JVM,JRE,JDK之间的区别和联系

入门小站

JVM

架构师训练营第 1 期第 11 周作业

好吃不贵

极客大学架构师训练营

IT做得好的时候,是什么状态?

boshi

职业

第七周总结

孤星

11.2安全架构:加密与解密

张荣召

架构师第十一周作业

_

极客大学架构师训练营 第十一周作业

11.7高可用故障案例分析

张荣召

ModelMapper:从对象到对象的映射库_Java_Kostis Kapelonis_InfoQ精选文章