全局属性
通过在类路径中提供属性文件,可以覆盖某些全局框架属性。
默认属性可以在 org.springframework.integration.context.IntegrationProperties
类中找到。
以下列表显示了默认值:
spring.integration.channels.autoCreate=true [id="CO1-1"]1
spring.integration.channels.maxUnicastSubscribers=0x7fffffff [id="CO1-2"]2
spring.integration.channels.maxBroadcastSubscribers=0x7fffffff [id="CO1-3"]3
spring.integration.taskScheduler.poolSize=10 [id="CO1-4"]4
spring.integration.messagingTemplate.throwExceptionOnLateReply=false [id="CO1-5"]5
spring.integration.readOnly.headers= [id="CO1-6"]6
spring.integration.endpoints.noAutoStartup= [id="CO1-7"]7
spring.integration.channels.error.requireSubscribers=true [id="CO1-8"]8
spring.integration.channels.error.ignoreFailures=true [id="CO1-9"]9
spring.integration.endpoints.defaultTimeout=30000 [id="CO1-10"]10
<1> 当为 `true` 时,如果应用程序上下文中未明确找到 `input-channel` 实例,它们将自动声明为 `DirectChannel` 实例。 <1> 设置例如 `DirectChannel` 允许的订阅者默认数量。 它可用于避免无意中将多个端点订阅到同一个通道。 您可以通过设置 `max-subscribers` 属性来覆盖单个通道上的此设置。 <1> 此属性提供例如 `PublishSubscribeChannel` 允许的订阅者默认数量。 它可用于避免无意中将超出预期数量的端点订阅到同一个通道。 您可以通过设置 `max-subscribers` 属性来覆盖单个通道上的此设置。 <1> 默认 `taskScheduler` bean 中可用的线程数。 请参阅 xref:configuration/namespace-taskscheduler.adoc[配置任务调度器]。 <1> 当为 `true` 时,到达网关回复通道的消息会在网关不期望回复时(因为发送线程已超时或已收到回复)抛出异常。 <1> 一个逗号分隔的消息头名称列表,这些消息头在头复制操作期间不应填充到 `Message` 实例中。 该列表由 `DefaultMessageBuilderFactory` bean 使用,并传播到 `IntegrationMessageHeaderAccessor` 实例(请参阅 xref:message.adoc#message-header-accessor[`MessageHeaderAccessor` API]),用于通过 `MessageBuilder` 构建消息(请参阅 xref:message.adoc#message-builder[The `MessageBuilder` Helper Class])。 默认情况下,只有 `MessageHeaders.ID` 和 `MessageHeaders.TIMESTAMP` 在消息构建期间不被复制。 自 4.3.2 版本起。 <1> 一个逗号分隔的 `AbstractEndpoint` bean 名称模式列表(`xxx*`、`*xxx`、`*xxx*` 或 `xxx*yyy`),这些端点在应用程序启动期间不应自动启动。 您可以稍后通过 xref:control-bus.adoc[控制总线] 按其 bean 名称手动启动这些端点,或通过 `SmartLifecycleRoleController` 按其角色启动(请参阅 xref:endpoint-roles.adoc[端点角色]),或通过 `Lifecycle` bean 注入启动。 您可以通过在 bean 定义中指定 `auto-startup` XML 注解或 `autoStartup` 注解属性或调用 `AbstractEndpoint.setAutoStartup()` 来明确覆盖此全局属性的效果。 自 4.3.12 版本起。 <1> 一个布尔标志,指示默认全局 `errorChannel` 必须配置 `requireSubscribers` 选项。 自 5.4.3 版本起。 有关详细信息,请参阅 xref:scatter-gather.adoc#scatter-gather-error-handling[错误处理]。 <1> 一个布尔标志,指示默认全局 `errorChannel` 必须忽略分派错误并将消息传递给下一个处理程序。 自 5.5 版本起。 <1> 端点中请求和回复超时的默认毫秒数。 默认值为 30 秒,以避免无限期阻塞。 可以配置为负值,以在端点中恢复无限期阻塞行为。 自 6.2 版本起。
这些属性可以通过将 /META-INF/spring.integration.properties
文件添加到类路径或为 org.springframework.integration.context.IntegrationProperties
实例添加 IntegrationContextUtils.INTEGRATION_GLOBAL_PROPERTIES_BEAN_NAME
bean 来覆盖。
您无需提供所有属性 — 只需提供您想要覆盖的属性。
从 5.1 版本开始,当 org.springframework.integration
类别的 DEBUG
逻辑级别开启时,所有合并的全局属性将在应用程序上下文启动后打印到日志中。
输出如下所示:
Spring Integration global properties:
spring.integration.endpoints.noAutoStartup=fooService*
spring.integration.taskScheduler.poolSize=20
spring.integration.channels.maxUnicastSubscribers=0x7fffffff
spring.integration.channels.autoCreate=true
spring.integration.channels.maxBroadcastSubscribers=0x7fffffff
spring.integration.readOnly.headers=
spring.integration.messagingTemplate.throwExceptionOnLateReply=true
spring.integration.endpoints.defaultTimeout=30000