操作指南

组件 DSL

师成师成· 更新于 2026-09-28· 阅读 4 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

组件 DSL

Component-DSL 是一套构建器 API,允许以类型安全的方式构造 Camel 组件,并将其直接注入 Camel Context,而不必通过构造函数进行初始化。

组件 DSL 仅作为 Java DSL 的一部分提供。

使用组件 DSL

以下是使用典型构造函数初始化方式构建的 Kafka 组件示例:

KafkaComponent kafka = new KafkaComponent();
kafka.setBrokers("localhost:9090");

camelContext.addComponent("kafka", kafka);

使用新的 ComponentsBuilderFactory,可以访问 Camel 中所有的组件 DSL,从而将同样的 Java 语句改写为如下更易读的形式:

ComponentsBuilderFactory.kafka()
                        .brokers("{{kafka.host}}:{{kafka.port}}")
                        .register(camelContext, "kafka");

为了更好地说明,我们可以将上面的 Java 语句拆分为 3 个部分:

  1. ComponentsBuilderFactory.kafka():初始化 camel-kafka 组件的 DSL。
  2. .brokers("{{kafka.host}}:{{kafka.port}}"):这等同于使用 DSL 流式构建器实现 kafka.setBrokers("localhost:9090") 的 setter 方法。
  3. .register(camelContext, "kafka"):在这里我们直接将组件以 kafka 为名称注册到 Camel 上下文中,当然你可以使用任何你喜欢的组件名称,就像 addComponent API 一样。

类型安全

与 Endpoint DSL 类似,它使用元模型(从源代码中提取并写入各种 JSON 文件)为每个组件生成流式 DSL。这种流式 DSL 为参数提供了类型安全。

依赖

要使用此功能,Maven 用户需要为该组件在 pom.xml 中添加以下依赖:

pom.xml

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-componentdsl</artifactId>
    <version>x.x.x</version>
</dependency>

然后像本页前面演示的那样使用它即可。

评论

登录后参与评论

正在加载评论…