java - Dozer bean 到 bean 映射的具体用例?

标签 java mapping javabeans dozer cloning

我很想从根本上理解 Dozer Mapping 存在什么问题。框架解决。

根据他们的教程,Dozer:

Dozer is a Java Bean to Java Bean mapper that recursively copies data from one object to another. Typically, these Java Beans will be of different complex types.

来自他们文档的代码示例:

Mapper mapper = new DozerBeanMapper();
DestinationObject destObject = new DestinationObject();

mapper.map(sourceObject, destObject);

但这与 HashMap 有什么不同呢?与标准 JRE Map 实现相比,Dozer 映射给我们带来了什么好处?我可以使用 JRE 完成与上面相同的事情:

Map<SourceObject, DestinationObject> mapper = new ConcurrentHashMap<SourceObject, DestinationObject>();
mapper.map(new SourceObject(), new DestinationObject());

我在这里缺少什么?

最佳答案

想象一下这种情况..你有一个实体类,它有很多字段,并且想将这个类传递给另一个应用程序。但是,您不想传递所有字段值,因为您只想共享某些字段(也许您有应保持私有(private)的字段)。

所以,大多数时候,我们通过两个类实现来处理这个问题..实体,以及实体的“可移植”版本,它没有我们不想共享的字段等等等。这称为 DTO(数据传输对象)。

如果没有推土机,我们必须创建可移植版本,并从实体中设置它的所有字段..

PortablePerson portPerson = new PortablePerson();
portPerson.setId(person.getId());
portPerson.setName(person.getName());
...
...

Dozer 为我们完成了所有这些繁琐的工作。只要真实类和可移植类之间的字段调用相同,Dozer 映射就无需任何配置即可工作。

希望对你有帮助!

关于java - Dozer bean 到 bean 映射的具体用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26681058/

相关文章:

java - Hibernate 中的 CUD 操作线程安全吗?

java - spring boot将特定的DataSource分配给JpaRepository

java - 如何使用相同的键将枚举映射到枚举

java - 将数组值映射到另一个数组

java - 从列表中删除第一项?

java - 如何在 Hibernate 中注解 Map<String, Set<String>> 或 Map<String, Map<String, String>>

spring - 无法访问Servlet中的Java Bean,getAttribute()返回null

java - 重写应用程序 MVC 风格

java - GWT 将大量数据从服务器发送到客户端的最佳实践

java - 整个文本文件到Java中的字符串