2.6. 添加全局端点、数据格式或 Bean
概述 复制链接链接已复制到粘贴板!
有些路由依赖于全局端点、全局数据格式或全局 Bean 提供的共享配置。您可以使用路由编辑器的 Configuration 选项卡在项目的路由上下文文件中添加全局元素。
在您的路由上下文文件中添加全局元素:
- 在路由编辑器中打开路由上下文文件。
在路由编辑器的底部,点 Configuration 选项卡以显示全局配置(如果存在)。
单击 Add 以打开 Create a new global element 对话框。
这些选项是:
- endpoint以了解如何使用 “添加全局端点”一节 部分查看
- data Formattripleo-vault,请参阅 “添加全局数据格式”一节。
- beanaramiko-vaultsee “添加全局 Bean”一节。
添加全局端点 复制链接链接已复制到粘贴板!
在 Create a new global element 对话框中,选择 Endpoint,再单击 OK 以打开 Select component 对话框。
注意默认情况下,选择组件 对话框将启用 Show only palette components 选项。要查看所有可用组件,请取消选中此选项。
注意按 类别选择分组时按类型对 组件进行分组。
在 Select component 对话框中,滚动浏览 Camel 组件列表以查找并选择您要添加到上下文文件的组件,然后在 Id 字段中输入 ID。
在本例中,选中 JMS 组件,
myJMS
是 Id 值。点 Finish。
现在,您可以根据需要在 Properties 视图中设置属性。
该工具会自动填充您在 [globalEndptSelect] 中组件
Id
字段中输入的值。在本例中,Camel 构建了从组件架构开始的uri
(必需字段)(本例中为jms:
),但您必须指定 destinationName 和 destinationType 以完成组件的 uri。注意对于 JMS 组件,目标类型默认为
队列
。在 Destination Name 中输入一个值(必需字段)前,在 Details 页面中的uri
字段中会显示这个默认值。- 要完成组件的 uri,请单击 Advanced。
在 Destination Name 字段中输入目标端点的名称(如
FOO.BAR
)。在 Destination Type 字段中,输入端点目的地的类型(如队列、topic
、temp:queue
、temp:queue
、temp:topic
)。Properties 视图的 Details 和 Advanced 选项卡提供对可用于配置特定组件的所有属性的访问。
单击 Consumer (advanced) 选项卡。
启用属性 加载 Properties 和 Expose Listener Session。
在路由编辑器中,切换到 Source 选项卡,查看添加到上下文文件中的代码(本例中为已配置的 JMS 端点),然后再使用第一个路由元素。
-
完成后,选择菜单栏中的 File
Save 来保存您的更改。
添加全局数据格式 复制链接链接已复制到粘贴板!
在 Create a new global element 对话框中,选择 Data Format 并单击 OK 以打开 Create a global Data Format 对话框。
数据格式默认为
avro
,即可用列表顶部的格式。-
打开 Data Format 下拉菜单,然后选择您想要的格式,例如
xmljson
。 在 Id 字段中,输入格式的名称,例如 myDataFormat)。
点 Finish。
在 Properties 视图中,根据您的项目设置属性值,例如:
在路由编辑器中,点 Source 选项卡查看添加到上下文文件中的工具的代码。在本例中,配置的 xmljson 数据格式是第一个路由元素的前面。
-
完成后,选择菜单栏中的 File
Save 来保存您的更改。
添加全局 Bean 复制链接链接已复制到粘贴板!
全局 bean 启用超出路由 Bean 的定义,这些定义可从路由的任意位置引用。当您将 Bean 组件从面板复制到路由时,您可以在 Properties 视图的 Ref 下拉列表中找到定义的全局 Bean。选择您希望 Bean 组件引用的全局 bean。
添加全局 bean 元素:
在 Create a new global element 窗口中,选择 Bean 并点 OK 以打开 Bean Definition 对话框。
- 在 Id 字段中,为全局 bean 输入 ID,例如 TransformBean。ID 在配置中必须是唯一的。
确定 bean 类或工厂 bean。
要指定工厂 bean,您必须使用指定的工厂类添加了另一个全局 bean。然后您可以选择该全局 bean 将其声明为全球 bean 工厂。bean factory 类的一个实例将在运行时使用。其他全局 Bean 可以在该类上调用工厂方法来创建自己的其他类实例。
要填写 Class 字段,请执行以下操作之一:
- 输入项目或引用的项目中的类名称。
- 点 … 进入并选择项目或引用的项目中一个类。
- 单击 + 以定义一个新的 bean 类,并将它添加为全局 bean。
如果您要添加的 bean 需要一个或多个参数,位于 Constructor Arguments 部分,用于每个参数:
- 点 Add。
-
(可选)在 Type 字段中输入参数的类型。默认值为
java.lang.String
。 - 在 Value 字段中,输入 参数的值。
- 点击 OK。
(可选)指定可由全局 Bean 访问的一个或多个属性。在 Bean Properties 部分中,对每个属性执行以下操作:
- 点 Add。
- 在 Name 字段中输入属性的名称。
- 在 Value 字段中,输入 属性的值。
- 点击 OK。
单击 Finish,将全局 Bean 添加到配置中。您指定的全局 Bean ID 出现在 配置 选项卡中,例如:
切换到 Source 选项卡,以查看工具添加到上下文文件中的
bean
元素。例如:点击 Configuration 选项卡返回全局元素列表,然后选择一个全局 bean 在 Properties 视图中显示其标准属性,例如:
注意要查看或编辑您在添加全局 bean 时指定的属性,请在 Configuration 选项卡中选择 bean,然后单击 Edit。
根据需要设置全局 bean 属性:
-
依赖 -on 是一个字符串,可用于标识必须在此全局 bean 前创建 Bean。指定依赖的 ID (名称)。例如,如果您要添加
TransformBean
,并将 Depends-on 设置为ChangeCaseBean
TransformBean
。当 Bean 被销毁时,TransformBean
会首先销毁。 - factory -method 仅在全局 bean 是一个工厂类时才有用。在这种情况下,指定或选择在引用 bean 时要调用的静态工厂方法。
-
范围是
单例
或原型
。默认的单例
表示,每次调用 bean 时,Camel 使用相同的 bean 实例。指定您希望 Camel 创建新实例时,每次调用 bean 时指定 bean 的新实例。 -
通过 init -method,您可以指定或选择在引用 bean 时要调用的 bean 的
init ()
方法。 - 通过 destroy -method,您可以指定或选择 bean 执行时要调用的 bean 的具体方法。
-
依赖 -on 是一个字符串,可用于标识必须在此全局 bean 前创建 Bean。指定依赖的 ID (名称)。例如,如果您要添加
-
完成后,选择菜单栏中的 File
Save 来保存您的更改。
删除全局元素 复制链接链接已复制到粘贴板!
无论删除端点、数据格式还是之前添加到路由上下文中,步骤都相同。
您无法执行删除全局元素的撤消操作。如果意外地删除了您希望在配置中保留的全局元素,您可以通过关闭上下文文件而不保存该文件来撤销删除。如果这不可行,则重新添加意外删除的全局元素。
在 Configuration 选项卡中,选择您要删除的全局元素。
例如,假设您想删除在 “添加全局数据格式”一节 中添加的数据格式
myDataFormat
:点 Delete。
global 元素
myDataFormat
从 Configuration 选项卡中 消失。切换到 Source 选项卡,以检查工具是否从路由上下文中删除了 XML 代码。
-
完成后,选择菜单栏中的 File
Save 来保存您的更改。
编辑全局元素 复制链接链接已复制到粘贴板!
无论您在路由上下文中添加了端点的属性、数据格式或 bean,程序都相同。
通常,您不想更改全局元素的 ID。如果在正在运行的路由中使用 global 元素,更改 ID 可能会破坏对全局元素的引用。
在 Configuration 选项卡中,选择要编辑的全局元素。
例如,要编辑在 “添加全局端点”一节 中添加的端点
myJMS
,请选择它:点 Edit。
在 Properties 视图中,根据需要修改元素的属性。
例如,打开 Advanced
Consumer 选项卡,并将 Concurrent Consumers 的值改为
2:在路由编辑器中,点 Source 选项卡,检查工具是否将属性
并发Consumers=2
添加到路由上下文中:-
完成后,选择菜单栏中的 File
Save 来保存您的更改。