写点什么

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

评论

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

Go/Rust 疯狂蚕食 Java 市场?老牌语言的 AI 化自救之路

飞算JavaAI开发助手

4款免费AI编程工具精选,开发效率飙升300%!

飞算JavaAI开发助手

YashanDB RegExp语法

YashanDB

数据库 yashandb

快节奏业务增长,还是得App混合开发

FinFish

APP开发 混合开发 小程序技术 小程序容器技术

YashanDB constraint语法

YashanDB

数据库 yashandb

没有数据湖?可观测性也许不再有效!

观测云

数据湖 可观测性

全链路、全通道、多维度,MobPush后效折损分析功能确实太全面了

MobTech袤博科技

消息推送 mobpush 消息推送系统

YashanDB算术运算符

YashanDB

数据库 yashandb

即刻体验|腾讯云AI代码助手正式搭载DeepSeek-V3-0324顶级模型,开发效率直接提升100倍!

CodeBuddy

高配置的七彩虹将星X18 Max游戏本来了,来打造专属你的电竞之夜!

E科讯

YashanDB比较运算符

YashanDB

数据库 yashandb

2025年局域网聊天软件推荐,打造高效便捷的局域网沟通利器

BeeWorks

即时通讯 私有化部署 IM即时通讯 局域网视频软件

快节奏业务增长,还是得App混合开发

Speedoooo

APP开发 小程序容器 混合开发 小程序容器技术

局域网视频软件BeeWorks Meet,企业内部安全会议不断线

BeeWorks

即时通讯IM 私有化部署 企业级 局域网视频软件

MobTech受邀出席年度DevFest 谷歌开发者节

MobTech袤博科技

消息推送 消息推送系统

YashanDB dblink语法

YashanDB

数据库 yashandb

朱啸虎后,人形机器人赛道,风口下的冷思考!

机器人头条

机器人 科技 大模型 人形机器人 具身智能

2025 程序员必看:用这 3 个 AI 工具,接私单效率翻 3 倍

飞算JavaAI开发助手

YashanDB逻辑运算符

YashanDB

数据库 yashandb

MobTech受邀出席鸿蒙生态伙伴SDK开发者论坛

MobTech袤博科技

鸿蒙 os

JVM实战—JVM垃圾回收器的原理和调优

不在线第一只蜗牛

JVM

MobPush用户分群功能全新升级,精准触达每一位用户

MobTech袤博科技

消息推送 mobpush 消息推送系统

警惕!代码片段工具正在偷走你的架构能力

飞算JavaAI开发助手

YashanDB位运算符

YashanDB

数据库 yashandb

YashanDB连接运算符

YashanDB

数据库 yashandb

MobPush智能消息推送能力大集结,国内外消息触达通道来了!

MobTech袤博科技

消息推送

YashanDB compile_clause语法

YashanDB

数据库 yashandb

智能设备操作系统闭源化浪潮下,小程序生态重构与技术创新

FinFish

操作系统 小程序容器 小程序技术 闭源操作系统

大厂裁员潮背后的真相:这 5 类程序员最危险(附转型指南)

飞算JavaAI开发助手

2025首批!腾讯云AI代码助手斩获信通院可信AI智能编码工具最高等级认证!

CodeBuddy

AI

YashanDB condition语法

YashanDB

数据库 yashandb

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