2.6. 添加全局端点、数据格式或 Bean


概述

有些路由依赖于全局端点、全局数据格式或全局 Bean 提供的共享配置。您可以使用路由编辑器的 Configuration 选项卡将全局元素添加到项目的路由上下文文件中。

在您的路由上下文文件中添加全局元素:

  1. 在路由编辑器中打开您的路由上下文文件。
  2. 在路由编辑器的底部,单击 Configuration 选项卡,以显示全局配置(若有)。

    ConfigurationView
  3. 单击 Add 以打开 Create a new global element 对话框。

    CnfigsVAddButton

    这些选项是:

添加全局端点

  1. Create a new global element 对话框中,选择 Endpoint 并点 OK 以打开 Select component 对话框。

    CnfigsVSelectCamComponent1
    注意

    默认情况下,会打开 Select component 对话框,并启用了 Show only palette 组件 选项。要查看所有可用的组件,请取消选中这个选项。

    注意

    由类别 选项组按类型分组组件。

    CnfigsVSelectCamComponentGrouped
  2. Select component 对话框中,滚动浏览 Camel 组件列表以查找并选择您要添加到上下文文件的组件,然后在 Id 字段中输入其 ID。

    CnfigsVCamComponentSelected

    在本例中,选择 JMS 组件,myJMSId 值。

  3. Finish

    CnfigsVmyEndptAdded2

    现在,您可以根据需要在 Properties 视图中设置属性。

    工具会在 [globalEndptSelect] 中的组件 Id 字段中输入的值自动填充 Id。在本例中,Camel 构建 uri (必需字段),从组件的模式开始(本例中为 jms:),但您必须指定 destinationNamedestinationType 以完成组件的 uri

    注意

    对于 JMS 组件,目的地类型默认为 queue。在 Destination Name (必需字段)中输入了一个值,此默认值不会出现在 Details 页面中的 uri 字段中。

  4. 要完成组件的 uri,请单击 Advanced
  5. Destination Name 字段中,输入目标端点的名称(如 FOO.BAR)。在 Destination Type 字段中,输入端点目的地的类型(如 queuetopictemp:queuetemp:topic)。

    JMSCompAdvanPathProp

    Properties 视图的 DetailsAdvanced 选项卡提供对可用于配置特定组件的所有属性的访问。

  6. Consumer (advanced) 选项卡。

    JMSCompConsumerAdvanProps2

    启用属性 Eager Loading Of PropertiesExpose Listener Session

  7. 在路由编辑器中,切换到 Source 选项卡,在第一个 route 元素之前,查看添加到上下文文件的工具(本例中为配置的 JMS 端点)。

    CnfigsEndptSourceView
  8. 完成后,通过选择 File Save 来保存您的更改。

添加全局数据格式

  1. Create a new global element 对话框中,选择 Data Format 并点 OK 以打开 Create a global Data Format 对话框。

    CnfigsVCreateGlobalDF1

    数据格式默认为 avro,其格式位于可用列表的顶部。

  2. 打开 Data Format 下拉菜单,再选择您想要的格式,如 xmljson
  3. Id 字段中输入格式的名称,如 myDataFormat

    CnfigsVCreateGlobalDF2
  4. Finish

    CnfigsVEditGlobalDFprops1
  5. Properties 视图中,根据项目设置属性值,例如:

    CnfigsVEditGlobalDFprops2
  6. 在路由编辑器中,点 Source 选项卡查看工具添加到上下文文件中的代码。在本例中,配置的 xmljson 数据格式是第一个 route 元素的前面。

    CnfigsVGlobalDFSourceV
  7. 完成后,通过选择 File Save 来保存您的更改。

添加全局 bean

全局 bean 启用路由外定义,这些定义可以从路由中的任何位置引用。当您将 Bean 组件从面板复制到路由时,您可以在 Properties 视图的 Ref 下拉菜单中找到定义的全局 Bean。选择您希望 Bean 组件引用的全局 bean。

添加全局 bean 元素:

  1. Create a new global element 窗口中,选择 Bean 并点 OK 来打开 Bean Definition 对话框。

    CnfigsVCreateGlobalBean1
  2. Id 字段中输入全局 bean 的 ID,例如 TransformBean。该 ID 在配置中必须是唯一的。
  3. 识别 bean 类或 factory bean。

    要指定 factory bean,您必须已添加了另外一个指定了 factory 类的全局 bean。然后,您可以选择该全局 bean 来声明它作为全局 Bean 工厂。bean 工厂类的一个实例将处于运行时。其他全局 Bean 可以调用该类的工厂方法,以创建自己的其他类实例。

    要填充 Class 字段,请执行以下操作之一:

    • 输入项目或被引用项目中的类名称。
    • …​ 导航到并选择位于项目或引用的项目中的类。
    • 单击 + 以定义新的 bean 类,并将它添加为全局 Bean。
  4. 如果要添加的 bean 需要一个或多个参数,请在 Constructor Arguments 部分中为每个参数:

    1. 点击 Add
    2. (可选)在 Type 字段中输入参数的类型。默认值为 java.lang.String
    3. Value 字段中输入 参数的值。
    4. 点击 确定
  5. (可选)指定全局 bean 可以访问的一个或多个属性。在 Bean Properties 部分中,为每个属性执行以下操作:

    1. 点击 Add
    2. Name 字段中输入属性的名称。
    3. Value 字段中输入 属性的值。
    4. 点击 确定
  6. 单击 Finish,将全局 bean 添加到配置。您指定的全局 bean ID 会出现在 configuration 选项卡中,例如:

    CnfigsBeanInList
  7. 切换到 Source 选项卡,以查看工具添加到上下文文件中的 bean 元素。例如:

    CnfigsBeanSourceV
  8. Configuration 选项卡返回到全局元素列表,并选择全局 bean 在 Properties 视图中显示其标准属性,例如:

    CnfigsBeanProperties
    注意

    要查看或编辑您在添加全局 Bean 时指定的属性,请在 Configuration 选项卡中选择 bean,然后单击 Edit

  9. 根据需要设置全局 bean 属性:

    • dependent-on 是一个字符串,可用于识别必须在此全局 Bean 之前创建的 Bean。指定依赖 Bean 的 ID (名称)。例如,如果您要添加 TransformBean,并将 Depends-on 设置为 ChangeCaseBean,则必须创建 ChangeCaseBean,然后可以创建 TransformBean。当 Bean 被销毁时,TransformBean 会首先被销毁。
    • factory-method 仅在全局 bean 是工厂类时很有用。在这种情况下,指定或选择在引用 bean 时调用的静态工厂方法。
    • 范围单例原型。默认 单例 指示 Camel 每次调用 Bean 时都使用相同的 bean 实例。当您希望 Camel 每次被调用时,指定 bean 的新实例。
    • init -method 可让您指定或选择在引用 bean 时要调用的 bean 的 init () 方法。
    • destroy-method 可让您指定或选择 bean 在 bean 执行处理完成时调用哪个 destory 方法。
  10. 完成后,通过选择 File Save 来保存您的更改。

删除全局元素

该流程是删除之前添加到路由上下文中的端点、数据格式或 bean 的过程相同。

注意

您无法执行撤销操作来删除全局元素。如果您意外删除您要保留在配置中的全局元素,则您可能可以通过关闭上下文文件来撤销删除,而无需保存它。如果这不可行,则重新添加意外删除的全局元素。

  1. Configuration 选项卡中,选择您要删除的全局元素。

    例如,假设您要删除在 “添加全局数据格式”一节 中添加的数据格式 myDataFormat

    CnfigsVDFSelectDelete
  2. 点击 Delete

    global 元素 myDataFormatConfigurations 选项卡中消失。

  3. 切换到 Source 选项卡,以检查工具是否从路由上下文中删除了 XML 代码。

    CnfigsDelDFSourceV
  4. 完成后,通过选择 File Save 来保存您的更改。

编辑全局元素

无论修改添加到路由上下文中的端点、数据格式或 bean 的属性是相同的。

通常,您不想更改全局元素的 ID。如果全局元素已在正在运行的路由中使用,更改 ID 可能会破坏对全局元素的引用。

  1. Configuration 选项卡中,选择您要编辑的全局元素。

    例如,要编辑 “添加全局端点”一节 中添加的端点 myJMS,请选择它:

    CnfigsVEndptEditSelect
  2. Edit

    CnfigsVEndptClickEdit

    Properties 视图中,根据需要修改元素的属性。

  3. 例如,打开 Advanced Consumer 选项卡,并将 Concurrent Consumers 的值改为 2

    CnfigsEditEndpntConcurConsume2
  4. 在路由编辑器中,点 Source 选项卡,检查工具将属性 concurrentConsumers=2 添加到路由上下文中:

    CnfigsVEndptEditSourceV
  5. 完成后,通过选择 File Save 来保存您的更改。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.