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是一个Android库,可帮助解析JSON字符串并将其自动映射到模型类的对象。 这是您的json。 { " name " : " Eunjae Lee " , " noshow " : false , " albuminfo " : { " count " : 10 } } 这是您的...
ModelMapper是一个智能的对象映射库,可自动将对象相互映射。 它使用基于约定的方法,同时提供用于处理特定用例的简单重构安全API。 访问了解更多信息。 模组 在v2.0中,ModelMapper提供了用于第三库集成的模块,...
ModelMapper就是这样一款强大的库,它为Java开发者提供了便捷的对象映射解决方案。本篇将详细解析ModelMapper 2.3.3版本的核心功能和使用方法。 首先,ModelMapper 2.3.3是一个轻量级的Java对象映射框架,它的主要...
`modelmapper`是一个Python库,专门用于对象关系映射(Object-Relational Mapping,ORM),这是一种编程技术,它允许开发者使用面向对象的方式来操作数据库。ORM在Python中非常常见,它简化了数据库操作,使得数据库...
`h-model-mapper` 可以处理这些复杂情况,将嵌套的对象或数组映射到目标对象中。 4. **默认值设定**:在映射过程中,可能会遇到某些属性在源对象中不存在的情况,这时可以设置默认值。`h-model-mapper` 提供了这样...
ModelMapper的错误 该项目演示了如何使用ModelMapper重现错误 如何运行项目 该项目是带有Java 11的简单Maven项目 测试框架是JUnit 5和AssertJ 该测试演示了该错误。 分析 有一些SourceType的列表->该列表元素的映射...
在IT行业中,MyBatis是一个广泛使用的持久层框架,它允许开发者将对象关系映射(Object-Relational Mapping,ORM)以XML配置文件的方式进行定义,从而极大地简化了数据库操作。这篇“mybatis学习总结:对象关系映射...
ModelMapper示例示例项目演示了使用和映射对象有多么容易。笔记: Lombok需要安装Lombok IDE插件来编译代码(以实现动态代码生成)。 您也可以使用Maven进行编译: mvn compile (不需要任何其他插件)控制台输出 # ...
ModelMapper是一个智能对象映射库,它自动化了对象之间的转换过程,使得数据传输对象(DTO,Data Transfer Objects)的创建变得更加简洁。DTO是用于在服务层和视图层之间传输数据的对象,它们通常用于防止暴露过多的...
模型映射器 您可以使用此工具将数据从嵌套模型复制到扁平视图模型中。 您可以通过创建地图来告诉映射器如何创建视图模型。 这可以通过createMap函数来完成。 您还可以createMapsFromDir并将映射器指向包含地图的目录...
- **ModelMapper库**:提供了`ModelMapper`类,可以通过配置注解自动映射对象,简化了复制过程。 4. **集合与集合的复制** - **使用流(Stream)API**:Java 8引入的流API可以方便地实现集合到集合的复制,如`...
ModelMapper是Java中一个流行的对象映射库,它帮助开发者将一个对象的属性值自动映射到另一个对象上,大大简化了数据转换的过程。然而,如同任何复杂软件一样,ModelMapper也可能遇到一些特定情况下的问题,比如类型...
Go Model Mapper作为数据访问层的一个工具,能够自动将数据库查询结果转换为Go语言中的结构体实例,反之亦然,将结构体对象保存到数据库中。这种映射机制是许多ORM(对象关系映射)框架的核心功能,它消除了手动编写...
Model类代表数据库中的表结构,而Mapper接口则用于执行SQL查询并映射结果到Java对象。手动编写这些文件不仅耗时,而且容易出错。因此,"java自动生成model和mapper的工具"应运而生,旨在提高开发效率,减少重复劳动...
在 Ruby 开发领域,`rom-mapper` 是一个重要的库,它曾是 ROM(Relational Object Mapper)框架的一部分,用于处理数据映射和对象关系映射。ROM 框架本身是一个现代、灵活的持久层解决方案,它支持多种数据库,并...
下面我们将深入探讨Dozer的核心特性以及如何使用它进行对象映射: 1. **核心功能**: - **自动映射**:Dozer会自动检测源对象和目标对象的公共字段,并进行映射。 - **深度映射**:支持嵌套对象和集合的映射,...
JsonMapper是一个PHP库,它的主要功能是将JSON对象映射到PHP类的实例上,这在处理API响应或从JSON格式的数据源中提取信息时非常有用。它可以自动将JSON对象的键映射到类的公共属性,并且支持嵌套的JSON结构。然而,...
在SSM项目中,数据表与Java对象(Model)以及映射文件(Mapper和mapper.xml)之间的关系是至关重要的。本教程将详细讲解如何在SSM框架下,根据数据表自动生成Model、Mapper接口和对应的mapper.xml配置文件,从而提高...
@Mapper ( componentModel = " spring " )public interface FruitMapper extends GenericMapper< Fruit> {} 将GenericMapperService注入您的服务并查找映射器。 @Autowiredprivate GenericMapperService ...
ModelMapper是一个智能对象映射库,它可以自动映射对象属性,大大简化了对象拷贝的过程。只需创建一个ModelMapper实例,然后调用`map()`方法,它会自动检测源对象和目标对象之间的对应关系并进行映射。同样,对于...