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