第 40 章 端点接口


摘要

本章论述了如何实现 Endpoint 接口,这是 Apache Camel 组件实施中的基本步骤。

40.1. 端点接口

概述

一个 org.apache.camel.Endpoint 类型的实例封装端点 URI,它也充当 Consumer,Producer, 和 Exchange 对象的工厂。实施端点的方法有三种:

  • 事件驱动的
  • 调度的轮询
  • polling

这些端点实现模式补充了实施 consumer iwl- iwlsee 第 41.2 节 “实施 Consumer 接口” 的对应模式。

图 40.1 “端点继承层次结构” 显示组成 Endpoint 继承层次结构的相关 Java 接口和类。

图 40.1. 端点继承层次结构

Endpoint 接口

例 40.1 “端点接口” 显示 org.apache.camel.Endpoint 接口的定义。

例 40.1. 端点接口

package org.apache.camel;

public interface Endpoint {
    boolean isSingleton();

    String getEndpointUri();

    String getEndpointKey();

    CamelContext getCamelContext();
    void setCamelContext(CamelContext context);

    void configureProperties(Map options);

    boolean isLenientProperties();

    Exchange createExchange();
    Exchange createExchange(ExchangePattern pattern);
    Exchange createExchange(Exchange exchange);

    Producer createProducer() throws Exception;

    Consumer createConsumer(Processor processor) throws Exception;
    PollingConsumer createPollingConsumer() throws Exception;
}
Copy to Clipboard Toggle word wrap

端点方法

Endpoint 接口定义了以下方法:

  • 如果您要确保每个 URI 映射到 CamelContext 中的单个端点,则 isSingleton () criu-wagonReturns true。当此属性为 true 时,对路由中相同 URI 的多个引用始终引用 单个 端点实例。当此属性为 false 时,在另一方面,对路由内同一 URI 的多个引用指的是 不同的 端点实例。每次引用路由中的 URI 时,都会创建一个新的端点实例。
  • getEndpointUri () criu-wagonReturns此端点的端点 URI。
  • 在注册端点时,getEndpointKey () criu-wagonUsed by org.apache.camel.spi.LifecycleStrategy
  • getCamelContext () criu- iwlreturn 对此端点所属的 CamelContext 实例的引用。
  • 设置CamelContext () criu- iwlSets 此端点所属的 CamelContext 实例。
  • 配置Properties () criu-HBACStores 参数映射的副本,用于在创建新 Consumer 实例时注入参数。
  • isLenientProperties () criu- iwlReturns true 来表示允许 URI 包含未知参数(即,无法在 Endpoint 或 Consumer 类上注入的参数)。通常,应该实施此方法返回 false
  • 具有以下变体的 createExchange () criu-wagonAn overloaded 方法:

    • 使用默认交换模式设置交换模式,交换 createExchange ()Creates a new exchange instance。
    • Exchange createExchange (ExchangePattern pattern) mvapich-PROFILECreates 是一个带有指定交换模式的新交换实例。
    • createExchange (Exchange exchange) criu-PROFILEConverts the given exchange 参数与此端点所需的交换类型进行交换。如果给定的交换不是正确的类型,此方法将其复制到正确类型的新实例中。这个方法的默认实现在 DefaultEndpoint 类中提供。
  • createProducer () criu-wagonFactory 方法,用于创建新的 Producer 实例。
  • createConsumer () criu- iwlFactory 方法来创建新的事件驱动的消费者实例。处理器 参数是路由中的第一个处理器的引用。
  • 创建PollingConsumer () criu-xxxxFactory 方法,以创建新的轮询消费者实例。

端点单例

为避免不必要的开销,最好为具有相同 URI ( CamelContext 中的)的所有端点创建一个端点实例。您可以通过实施 isSingleton () 来返回 true 来强制实施此条件。

注意

在这个上下文中,相同的 URI 意味着两个 URI 与使用字符串相等性进行比较时相同。在原则上,可以有两个等效的 URI,但由不同的字符串表示。在这种情况下,URI 不会被视为相同。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat