写点什么

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

评论

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

中国智能卡车“遥遥领先”:卡车NOA落地5000万公里0事故,全球首个

Openlab_cosmoplat

人工智能 自动驾驶

基于Vue3前后端分离的低代码开发框架

互联网工科生

Vue 软件开发 低代码 JNPF

为什么越来越多的学校使用云桌面?

青椒云云电脑

桌面云 云桌面

腾讯云 CODING 入选“数智影响力”数字化转型创新典型案例

CODING DevOps

多场景PAI-Diffusion中文模型家族大升级,12个模型、2个工具全部开源

阿里云大数据AI技术

人工智能 阿里云

云桌面怎么选,好产品的标准是什么

青椒云云电脑

桌面云 云桌面

Footprint Analytics 团队参与 Token 2049,为多场活动以及演讲提供数据支持

Footprint Analytics

区块链 公链

对齐管理后台中账户体系的四种方法

FN0

单点登录 账户体系

十种数据库缓存相关的技术和机制

树上有只程序猿

数据库

在对接自有账户体系时,FinClip 是怎么做的?

Onegun

用户 账户管理 账户体系

软件测试/测试开发丨使用ChatGPT自动进行需求分析

测试人

人工智能 程序员 软件测试 需求分析 ChatGPT

INFINI Easysearch 与兆芯完成产品兼容互认证

极限实验室

easysearch 兆芯 国产适配

产教融合 | 力软联合重庆科技学院开展低代码应用开发培训

力软低代码开发平台

什么是网络营销?做网络营销怎么用代理IP?

巨量HTTP

IP

不知道该选公有云还是私有云?这些客户请选私有云

青椒云云电脑

桌面云 云桌面

HiAI Foundation助力端侧音视频AI能力,高性能低功耗释放云侧成本

HarmonyOS SDK

huawei HarmonyOS

企业高管IT战略指南——为何要落地平台工程

York

容器 DevOps 云原生 敏捷 平台工程

英特尔产品组合针对多规模AI模型性价比优势明显

E科讯

XMind for mac (XMind思维导图)v23.08中文激活版

mac

XMind 思维导图软件 苹果mac Windows软件

用户级协议和框架:DPDK、SPDK和VPP的业务场景和发展趋势

统信软件

关于Taro你需要了解这些

Onegun

小程序 taro 小程序架构

Footprint Analytics 为 Layer2 公链提供数据支持,助力新兴项目发展

Footprint Analytics

区块链 公链 layer2

软件开发文档大全(项目管理、开发、实施、交付、评审、投标支撑)

金陵老街

Vue java;

使用融云 CallPlus SDK,一小时实现一款 1V1 视频应用

融云 RongCloud

android 音视频 通信 API CallPlus SDK

lrc下载安装 图像处理软件Lightroom Classic 2023 mac中文激活版

mac

图像处理软件 苹果mac Windows软件 lrc2023 Lightroom Classic

大模型的东风中,看雄安的数字飞翔

脑极体

数字化

软件测试/测试开发丨学会与 AI 对话,高效提升学习效率

测试人

人工智能 AI 软件测试 ChatGPT

Mac电脑十六进制编辑器 010 Editor 激活永久版

胖墩儿不胖y

代码编辑器 Mac软件

Vue 和 React 前端框架的比较

高端章鱼哥

Vue React

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