写点什么

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:104323

评论

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

「架构师训练营」第 2 周作业 - 总结

森林

架构师训练营 第2周作业

Lingjun

极客大学架构师训练营

架构师训练营第二周作业

东哥

极客大学架构师训练营

第二周作业

技术小生

极客大学架构师训练营

江帅帅:精通 Spring Boot 系列 04

奈学教育

Spring Boot

架构师训练营 第 2 周总结

Lingjun

极客大学架构师训练营

分布式柔性事务的TCC方案

奈学教育

分布式

Monorepo 原来像陈老师这么香!

admin

软件设计原则-第二周总结

孙志平

第二周课程作业

腾志文(清样)

作业

程序设计原则

技术小生

极客大学架构师训练营

江帅帅:精通 Spring Boot 系列 04

古月木易

Spring Boot

分布式柔性事务的TCC方案

古月木易

分布式

架构师训练营-02作业

ashuai1106

架构师 极客大学架构师训练营 架构设计原则

第二周作业

戴维斯

架构是训练营

江帅帅:精通 Spring Boot 系列 03

奈学教育

springboot

江帅帅:精通 Spring Boot 系列 03

古月木易

Spring Boot

架构师训练营-第二周命题作业

牛牛

极客大学架构师训练营 命题作业

设计原则

东哥

极客大学架构师训练营

依赖倒置原则联想

极客大学架构师训练营

「架构师训练营」第 2 周作业 - 设计原则

森林

程序员买买买,纸书半价,电子书55折,抢券叠加使用更划算

图灵社区

图灵教育 热门活动

软件设计原则

superman

我写了10年博客,却被人说“不火”?我是这样怼回去的!

王磊

Java 程序人生 「Java 25周年」

构架师训练营-第二周总结

Dawn

极客大学架构师训练营

嵌入SpreadJS,赋能计量器具检定信息化

葡萄城技术团队

SpreadJS 计量检定

软件设计原则 - 第二周作业

孙志平

Centos6 内核升级

唯爱

产品周刊 | 第 19 期(20200614)

八味阁

产品 设计 产品经理 产品开发

centos7升级内核

唯爱

在野望中奔跑:镜头前"摆摊"的联想来酷总裁们

Geek_116789

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