dozer对象转换

Dozer是Java Bean到Java Bean映射器,它以递归方式将数据从一个对象复制到另一个对象。通常,这些Java Bean将具有不同的复杂类型。

Dozer支持简单属性映射,复杂类型映射,双向映射,隐式显式映射以及递归映射。这包括映射集合属性,这些属性也需要在元素级别进行映射。

Dozer不仅支持属性名称之间的映射,还支持在类型之间自动转换。大多数转换方案都是开箱即用的,但Dozer还允许您通过XML指定自定义转换。

 

只要您需要使用一种类型的Java Bean并将其映射到另一种类型的Java Bean,就会使用映射器。大多数字段映射可以由Dozer使用反射自动完成,但任何自定义映射都可以以XML格式预先描述。映射是双向的,因此只需要定义类之间的一个关系。如果两个对象上的任何属性名称相同,则甚至不需要为这些字段执行任何显式属性映射。

下图描绘了Dozer可以插入到架构中的一些常见区域。请注意,它通常用于边界(进入/退出)。Dozer将确保数据库中的内部域对象不会流入外部表示层或外部使用者。它还可以帮助将域对象映射到外部API调用,反之亦然。

建筑

bean映射器是用Java编写的,并且在很大程度上依赖于用于Java Bean实用程序方法的Jakarta Commons Bean Utils包。

 

https://blog.csdn.net/whhahyy/article/details/48594657     <==非常详细

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这是一个简单的使用Dozer转换对象列表的示例代码: ```java import org.dozer.DozerBeanMapper; import org.dozer.Mapper; import java.util.ArrayList; import java.util.List; public class DozerExample { public static void main(String[] args) { List<SourceObject> sourceList = new ArrayList<>(); sourceList.add(new SourceObject("John", "Doe")); sourceList.add(new SourceObject("Jane", "Doe")); Mapper mapper = new DozerBeanMapper(); List<DestinationObject> destList = new ArrayList<>(); for (SourceObject source : sourceList) { DestinationObject dest = mapper.map(source, DestinationObject.class); destList.add(dest); } System.out.println(destList); } } class SourceObject { private String firstName; private String lastName; public SourceObject(String firstName, String lastName) { this.firstName = firstName; this.lastName = lastName; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } @Override public String toString() { return "SourceObject{" + "firstName='" + firstName + '\'' + ", lastName='" + lastName + '\'' + '}'; } } class DestinationObject { private String firstName; private String lastName; public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } @Override public String toString() { return "DestinationObject{" + "firstName='" + firstName + '\'' + ", lastName='" + lastName + '\'' + '}'; } } ``` 这段代码创建了两个Java类,SourceObject 和 DestinationObject,然后使用DozerBeanMapper将来源对象列表转换为目标对象列表。请注意,Dozer会自动将对象属性名称匹配,并使用Java Bean规范自动设置属性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值