在使用dozer进行数据映射时,有一种情况,我们需要将一个对象里面的部分数据映射到一个Map中(这里使用HashMap)
开始我参考了dozer的文档这样写:
<mapping > <class-a>com.test.obj</class-a> <class-b>java.util.HashMap</class-b> <field> <a>mytitle</a> <b key="Title">this</b> <b-hint>java.lang.String</b-hint> </field> </mapping>
发现不论怎么样,都会把class-a中的所有字段都映射到Map中,并且加上<field-exclude>标签都不管用
后来查看了官方的例子,发现其实只要修改一下就OK了,配置文件这样写:
<mapping map-id="mymapping"> <class-a >java.util.HashMap</class-a> <class-b>com.test.obj</class-b> <field > <a>Title</a> <b>mytitle</b> <a-hint>java.lang.String</a-hint> </field> </mapping>
并且可以增加<field-exclude>标签也是有效的。注意的是 <a>Title</a>是指Map中的Key.
映射是注意指定map-id。
默认情况下,没有在xml配置中写出来的字段是不会映射的。
相关推荐
对于集合类型的属性,如List、Set、Map,Dozer会自动进行元素级别的映射。这意味着源对象的集合中的每个元素都会被映射到目标对象的对应集合中。 ### 5. 深度映射与自定义事件监听 Dozer不仅支持简单的属性映射,...
- Map-backed属性映射:处理Map类型数据的映射。 - 索引映射:根据索引关系进行映射。 - 深层映射:递归映射对象中的所有属性。 - 排除字段:在映射过程中排除某些不需要映射的字段。 - 单向映射:只进行单向映射,...
### Dozer:强大的Java Bean映射工具 #### 一、简介与下载 Dozer是一款功能强大但使用简单的Java Bean到Java Bean映射工具,能够递归地从一个对象复制数据到另一个对象。通常,这些Java Beans会是不同复杂度的类型...
3. 执行映射:在业务代码中,我们可以调用DozerUtil的`map`方法,传入源对象和目标类的Class类型,Dozer会自动完成复制。 ```java MySource src = ...; // 初始化源对象 MyDestination dest = DozerUtil.map(src, ...
然而,当涉及到复杂类型,如List或Map时,Dozer同样表现得游刃有余。在"dozer复杂类型测试类"中,List类型的映射尤为重要。假设我们有源对象中的一个List字段`List<SourceItem>`,需要映射到目标对象的`List...
3. 执行映射:有了DozerMapper实例和映射规则后,你可以调用`map()`方法来执行映射。例如,`DozerMapper mapper = new DozerMapper(); MySource source = new MySource(); MyDestination dest = mapper.map(source, ...
例如,Dozer在处理复杂映射和深度映射方面表现出色,而MapStruct和ModelMapper可能更适合简单场景。 通过理解Dozer的工作原理和特性,开发者可以有效地减少复制粘贴代码,提高代码的可维护性和一致性。结合UML工具...
Dozer 提供了丰富的映射功能,包括基本类型、集合、自定义对象等之间的映射,并支持深度映射和双向映射。 **一、Dozer 的安装与配置** 在项目中使用 Dozer 首先需要将其依赖引入。如果你使用的是 Maven,可以在 `...
Dozer不仅支持简单的属性映射,还支持复杂的类型映射,如集合、数组、自定义类型等。 描述中提到的几个jar文件是Dozer运行所需的依赖库: 1. `commons-beanutils-1.7.0.jar`:这是Apache Commons BeanUtils库,它...
Dozer是一款强大的Java到Java对象映射库,它可以帮助开发者在不同的对象模型之间进行数据转换。在处理复杂的数据结构时,Dozer提供了便捷的方式,减少了手动转换代码的工作量,使得代码更加简洁、可维护。Dozer不仅...
Dozer 是一个强大的 Java 对象映射框架,它简化了对象到对象之间的转换工作,尤其在处理复杂的数据结构时。这个工具广泛应用于企业级应用,因为它可以极大地减少手动编写转换代码的工作量。在这个总结中,我们将深入...
如枚举映射、集合映射、时间字符串映射、索引映射、深度映射、排除字段映射、单向映射、上下文映射、自定义转换器、自定义Bean工厂、自定义创建方法、自定义获取/设置方法、引用复制映射、继承映射、Dozer事件、...
Dozer支持基本类型、集合、Map以及自定义对象的映射,并提供了定制化映射规则的能力。 **知识点二:对象映射的重要性** 在软件开发中,特别是在服务之间或者持久层与业务层之间,对象模型往往不尽相同。对象映射...
7. **性能优化**:MapStruct使用高效的代码生成,因此其性能通常优于基于运行时反射的映射库,如Dozer或ModelMapper。 8. **最佳实践**:在大型项目中,通常建议将映射接口组织在单独的模块或包中,以保持代码的...
通过`Mapper`接口,我们可以创建映射规则,然后调用`map()`方法执行映射操作。这种方式灵活度高,适合于运行时动态调整映射策略。 3. **XML映射文件**:对于更复杂的映射需求,可以使用XML配置文件来定义映射规则。...
5. **使用Dozer进行对象映射**:在业务代码中,通过Dozer提供的`map()`方法,可以将一个对象转换为另一个对象。例如,将一个`User`对象映射到`UserDto`对象,只需一行代码即可完成。 6. **自定义转换器**:Dozer...
下面我们将详细探讨这些知识点。 1. **XML(Extensible Markup Language)**: XML是一种用于标记数据的语言,常用于存储和传输数据。它的结构清晰,易于机器解析和人阅读。在Java中,我们可以使用JAXB(Java ...