87.4. 使用带有 Dozer 的数据格式

Dozer 不支持用于映射的非 Java 源和目标,因此,它不能将 XML 文档映射到其自己的 Java 对象。 幸运的是,Camel 使用 数据格式对 Java 和各种格式之间的汇总有了广泛的支持。 Dozer 组件允许您指定通过 Dozer 处理数据格式的数据格式来指定输入和输出数据,从而充分利用这一支持。 您始终可以在调用 Dozer 之外自行执行此操作,但在 Dozer 组件中直接支持它,您可以使用单个端点来配置 Camel 中的任何对许多转换。

例如,假设您在使用 Dozer 组件在 XML 数据结构和 JSON 数据结构间进行映射。 如果您在 Camel 上下文中定义了以下数据格式:

<dataFormats>
  <json library="Jackson" id="myjson"/>
  <jaxb contextPath="org.example" id="myjaxb"/>
</dataFormats>

然后,您可以使用 JAXB 数据格式将 Dozer 端点配置为传播输入 XML,并使用 Jackson 总结映射输出。

<endpoint uri="dozer:xml2json?marshalId=myjson&amp;unmarshalId=myjaxb&amp;targetModel=org.example.Order"/>