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