10.6. transformer


transformer 根据路由定义上声明的 Input Type 和/或 输出类型 执行声明性转换。默认 camel 消息实现 DataTypeAware,它保存由 DataType 表示的消息类型。

10.6.1. Transformer 如何工作?

路由定义声明 输入类型和 /或 输出类型。如果输入类型和/或 输出类型 与运行时消息类型不同,则 camel 内部处理器会查找 Transformer。Transformer 将当前消息类型转换为预期消息类型。当消息被成功转换后,或者消息已处于预期类型中,则会更新消息数据类型。

10.6.1.1. 数据类型格式

数据类型的格式是 scheme:name,其中 schemejavaxmljson 等数据模型的类型,而 name 是数据类型名称。

注意

如果您只指定 方案,它将与所有数据类型与该方案匹配。

10.6.1.2. 支持的 Transformers

transformer描述

数据格式转换

使用数据格式进行转换

端点转换

使用端点转换

自定义 Transformer

通过使用自定义转换器类进行转换。

10.6.1.3. 常见选项

所有转换器都有以下常用选项,可按转换器指定受支持的数据类型:

重要

必须指定 fromTypetoType方案

Name描述

scheme

xmljson 等数据模型的类型。例如,如果指定了 xml,则会为所有 java -> xml 和 xml -> java 转换应用转换器。

fromType

从中 转换的数据类型。

toType

转变为.

10.6.1.4. DataFormat Transformer 选项

Name描述

type

数据类型

Ref

引用数据格式 ID

指定 bindy DataFormat 类型的示例:

Java DSL:

BindyDataFormat bindy = new BindyDataFormat();
bindy.setType(BindyType.Csv);
bindy.setClassType(com.example.Order.class);
transformer()
    .fromType(com.example.Order.class)
    .toType("csv:CSVOrder")
    .withDataFormat(bindy);

XML DSL:

<dataFormatTransformer fromType="java:com.example.Order" toType="csv:CSVOrder">
    <bindy id="csvdf" type="Csv" classType="com.example.Order"/>
</dataFormatTransformer>
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.