307.3. Spring Boot Auto-Configuration
组件支持 15 个选项,如下所列。
Name | 描述 | 默认值 | 类型 |
---|---|---|---|
camel.component.sjms.connection-client-id | 创建 javax.jms.Connection 时使用的客户端 ID,在使用默认的 org.apache.camel.component.sjms.jms.ConnectionFactoryResource 时使用。 | 字符串 | |
camel.component.sjms.connection-count | 此组件下启动的端点的最大可用连接数 | 1 | 整数 |
camel.component.sjms.connection-factory | 需要 ConnectionFactory 才能启用 SjmsComponent。它可以直接设置,也可以设置为 ConnectionResource 的一部分。选项是 javax.jms.ConnectionFactory 类型。 | 字符串 | |
camel.component.sjms.connection-max-wait | 当池使用默认 org.apache.camel.component.sjms.jms.ConnectionFactoryResource 时,池被耗尽时,等待 millis 的最大等待时间。 | 5000 | Long |
camel.component.sjms.connection-password | 创建 javax.jms.Connection 时使用的密码,在使用默认的 org.apache.camel.component.sjms.jms.ConnectionFactoryResource 时使用。 | 字符串 | |
camel.component.sjms.connection-resource | ConnectionResource 是一个接口,允许对 ConnectionFactory 进行自定义和容器控制。如需了解更多详细信息,请参阅 插件连接资源管理。选项是 org.apache.camel.component.sjms.jms.ConnectionResource 类型。 | 字符串 | |
camel.component.sjms.connection-test-on-borrow | 在使用默认的 org.apache.camel.component.sjms.jms.ConnectionFactoryResource 时,在从池返回之前,每个 javax.jms.Connection 应经过测试(调用 start)。 | true | 布尔值 |
camel.component.sjms.connection-username | 创建 javax.jms.Connection 时使用的用户名,在使用默认的 org.apache.camel.component.sjms.jms.ConnectionFactoryResource 时使用。 | 字符串 | |
camel.component.sjms.destination-creation-strategy | 使用自定义 DestinationCreationStrategy。选项是 org.apache.camel.component.sjms.jms.DestinationCreationStrategy 类型。 | 字符串 | |
camel.component.sjms.enabled | 启用 sjms 组件 | true | 布尔值 |
camel.component.sjms.header-filter-strategy | 使用自定义 org.apache.camel.spi.HeaderFilterStrategy 过滤到 Camel 消息的标头。选项是一个 org.apache.camel.spi.HeaderFilterStrategy 类型。 | 字符串 | |
camel.component.sjms.jms-key-format-strategy | 可插拔编码和解码 JMS 密钥策略,以便它们能够与 JMS 规范兼容。Camel 提供了开箱即用的一个实施:default.默认策略可以安全地放入点和连字符(. 和 -)。可用于 JMS 代理,其不小心是 JMS 标头键是否包含非法字符。您可以提供自己的 org.apache.camel.component.jms.JmsKeyFormatStrategy 的实现,并使用 # 表示法引用它。选项是 org.apache.camel.component.sjms.jms.JmsKeyFormatStrategy 类型。 | 字符串 | |
camel.component.sjms.message-created-strategy | 要使用给定的 MessageCreatedStrategy,后者在 Camel 在 Camel 发送 JMS 消息时创建 javax.jms.Message 对象的新实例。选项是 org.apache.camel.component.sjms.jms.MessageCreatedStrategy 类型。 | 字符串 | |
camel.component.sjms.resolve-property-placeholders | 组件是否应在启动时解析属性占位符。只有 String 类型的属性可以使用属性占位符。 | true | 布尔值 |
camel.component.sjms.transaction-commit-strategy | 要配置要使用的提交策略类型。Camel 开箱即用提供了两个实现,即 default 和 batch。选项是 org.apache.camel.component.sjms.TransactionCommitStrategy 类型。 | 字符串 |
以下是如何使用所需的 ConnectionFactory
提供程序配置 SjmsComponent
的示例。默认情况下,它将创建一个连接,并使用组件内部池 API 来存储它,以确保它能够以线程安全的方式服务会话创建请求。
SjmsComponent component = new SjmsComponent(); component.setConnectionFactory(new ActiveMQConnectionFactory("tcp://localhost:61616")); getContext().addComponent("sjms", component);
对于支持持久订阅的 SJMS 组件,您可以覆盖默认的 ConnectionFactoryResource
实例并设置 clientId
属性。
ConnectionFactoryResource connectionResource = new ConnectionFactoryResource(); connectionResource.setConnectionFactory(new ActiveMQConnectionFactory("tcp://localhost:61616")); connectionResource.setClientId("myclient-id"); SjmsComponent component = new SjmsComponent(); component.setConnectionResource(connectionResource); component.setMaxConnections(1);