写点什么

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

评论

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

【基金系列】10年理财规划师经验分享:不想当韭菜就看一下这些内容

小Q

学习 基金会 理财 基金

lombok编译报错:java: 找不到符号

李印

IntelliJ IDEA lombok

荣耀,单刷苹果大boss

脑极体

计算机原理学习笔记 Day3

穿过生命散发芬芳

计算机原理 4月日更

Zabbix 产品周期

耳东@Erdong

zabbix 4月日更 lifecycle

模块 1 作业

流水亮

深度图解Redis Cluster原理

leonsh

redis Gossip redis cluster

二阶单位圆

山@支

Nginx源码编译安装与运行

马里奥

nginx 安装 笔记

绝了!阿里面试官跟我死磕MySQL,结果我却拿了个高薪offer

码农之家

Java 程序员 面试 MySQL 高可用 刷题笔记

方寸之间,书写天地

小天同学

个人总结 4月日更 1 周年盛典 我和写作平台的故事 InfoQ 写作平台 1 周年

Vue cli项目 修改运行命令和端口号

空城机

Vue 大前端 4月日更 vue cli

Rust:关于闭包的一点研究

Microwood

rust 闭包 closure

应用宝SDK接入记录

风翱

sdk 4月日更 应用宝

第二周作业

Geek_2e7dd7

架构实战营

产品 0 期 - 第八周作业

vipyinzhiwei

手机自带的多功能百宝箱,没人用真的太可惜了。

彭宏豪95

iphone 效率 工具 苹果 4月日更

逐行解读Spring- 没人比我更懂循环依赖

学Java关注我

Java 编程 架构 编程语言 技术宅

哭了!从腾讯辞职后找不到工作,投了20多家简历,却只面过一家

Java架构师迁哥

洛谷 || 混合牛奶 Mixing Milk(贪心算法)

Bob

算法 刷题 4月日更

变易世界,简易战略,不易华为

脑极体

《采访融云CTO杨攀:融云七年发展史》(采访提纲)

后台技术汇

调查采访能力考核

Java线程讲解,这次没有人学不会了吧!!!

霖~

想靠接私活月入5W?建议根据这几个开源的SpringBoot项目(含小程序)模仿一下~

Java架构师迁哥

年度盛会 | Atlassian Team 2021 全球大会重磅嘉宾介绍

Atlassian

Agile Zoom Atlassian Slack

Java入门第一课

ベ布小禅

4月日更

为什么我们的生活越来越快?

石云升

读书笔记 28天写作 4月日更

清理SpringBoot应用无用的metrics指标

远鹏

Java springboot metrics micrometer

如何横扫大厂Offer?这份“1000道Java后端面试速成笔记”程序员(银四)必备

比伯

Java 程序员 程序人生 软件架构 java编程

Redis-Sentinel 深入浅出原理和实战

leonsh

redis redis sentinel

重读《重构2》- 提取函数

顿晓

4月日更 提取函数

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