88.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>
<dataFormats>
<json library="Jackson" id="myjson"/>
<jaxb contextPath="org.example" id="myjaxb"/>
</dataFormats>
然后,您可以将 Dozer 端点配置为使用 JAXB 数据格式的输入 XML,并使用 Jackson 对映射输出进行提取。
<endpoint uri="dozer:xml2json?marshalId=myjson&unmarshalId=myjaxb&targetModel=org.example.Order"/>
<endpoint uri="dozer:xml2json?marshalId=myjson&unmarshalId=myjaxb&targetModel=org.example.Order"/>