操作指南
数据格式 DSL
登录后可跨设备保存划线和私人笔记登录
Data Format DSL
Data Format DSL 是一个构建器 API,允许以类型安全的方式构造 Camel 数据格式。
Data Format DSL 仅作为 Java DSL 的一部分提供。
借助 dataFormat() 方法,可以直接从 RouteBuilder 访问该 DSL。
使用 Data Format DSL
在下面的示例中,使用传统方式创建了 CsvDataFormat,即显式实例化数据格式并通过 setter 进行配置:
仅 Java:使用传统方式创建 CSV 数据格式
public class MyRoutes extends RouteBuilder {
@Override
public void configure() {
CsvDataFormat dataFormat = new CsvDataFormat(); (1)
dataFormat.setDelimiter("|"); (2)
from("direct:format")
.setBody(constant(Map.of("foo", "abc", "bar", 123)))
.marshal(dataFormat); (3)
}
}| 1 | 实例化所需的数据格式 |
|---|---|
| 2 | 根据需要配置该数据格式 |
| 3 | 应用所需的配置到数据格式上 |
借助 marshal() 和 unmarshal() 方法所返回类型对应的 DataFormatClause 中直接提供的工具方法,可以简化上面的代码:
仅 Java:使用 DataFormatClause 工具方法简化序列化处理
public class MyRoutes extends RouteBuilder {
@Override
public void configure() {
from("direct:format")
.setBody(constant(Map.of("foo", "abc", "bar", 123)))
.marshal()
.csv(); (1)
}
}| 1 | 选择 csv 数据格式,使用默认分隔符 |
|---|
这种方法适用于非常基础的配置,但由于每种受支持的数据格式只提供了有限的工具方法,对于更复杂的配置,我们很快就会遇到期望配置所对应的工具方法并不存在的情况。在这种情况下,你可以选择使用传统方式,或者像下面的代码片段那样使用数据格式 DSL:
仅 Java:使用数据格式 DSL 构建器配置 CSV 序列化
public class MyRoutes extends RouteBuilder {
@Override
public void configure() {
from("direct:format")
.setBody(constant(Map.of("foo", "abc", "bar", 123)))
.marshal(
dataFormat() (1)
.csv() (2)
.delimiter(",") (3)
.end() (4)
);
}
}| 1 | 提供对所有受支持数据格式的访问 |
|---|---|
| 2 | 选择 csv 数据格式 |
| 3 | 根据需要配置数据格式 |
| 4 | 使用预期的配置构建该数据格式 |
评论
登录后参与评论
正在加载评论…
KnowForge