全局属性

可以通过在 Classpath 上提供 properties 文件来覆盖某些全局框架属性。spring-doc.cn

默认属性可以在 class 中找到。 下面的清单显示了默认值:org.springframework.integration.context.IntegrationPropertiesspring-doc.cn

spring.integration.channels.autoCreate=true (1)
spring.integration.channels.maxUnicastSubscribers=0x7fffffff (2)
spring.integration.channels.maxBroadcastSubscribers=0x7fffffff (3)
spring.integration.taskScheduler.poolSize=10 (4)
spring.integration.messagingTemplate.throwExceptionOnLateReply=false (5)
spring.integration.readOnly.headers= (6)
spring.integration.endpoints.noAutoStartup= (7)
spring.integration.channels.error.requireSubscribers=true (8)
spring.integration.channels.error.ignoreFailures=true (9)
spring.integration.endpoints.defaultTimeout=30000 (10)
1 如果为 true,则在应用程序上下文中未显式找到实例时,会自动将实例声明为实例。input-channelDirectChannel
2 设置允许在 . 它可用于避免无意中将多个终端节点订阅到同一通道。 您可以通过设置属性在单个通道上覆盖它。DirectChannelmax-subscribers
3 此属性提供允许在 . 它可用于避免无意中为同一通道订阅超过预期数量的终端节点。 您可以通过设置属性在单个通道上覆盖它。PublishSubscribeChannelmax-subscribers
4 默认 Bean 中可用的线程数。 请参阅配置 Task SchedulertaskScheduler
5 When ,到达网关回复通道的消息在网关不期待回复时(因为发送线程已超时或已收到回复)时引发异常。true
6 在报头复制操作期间不应填充到实例中的消息报头名称的逗号分隔列表。 该列表由 Bean 使用,并传播到用于构建消息的实例(参见MessageHeaderAccessor API)(参见MessageBuilder Helper Class)。 默认情况下,在消息构建期间,仅复制 和 不复制。 从 4.3.2 版本开始。MessageDefaultMessageBuilderFactoryIntegrationMessageHeaderAccessorMessageBuilderMessageHeaders.IDMessageHeaders.TIMESTAMP
7 在应用程序启动期间不应自动启动的 bean 名称模式(、、*xxx 或 )的逗号分隔列表。 您可以稍后通过 Control Bus 通过其 bean 名称、使用它们的角色(参见Endpoint Roles)或通过 bean 注入手动启动这些端点。 您可以通过指定 XML 注释或 annotation 属性或通过调用 Bean 定义来显式覆盖此全局属性的效果。 从 4.3.12 版本开始。AbstractEndpointxxx*xxxxxx*yyySmartLifecycleRoleControllerLifecycleauto-startupautoStartupAbstractEndpoint.setAutoStartup()
8 一个布尔标志,指示必须使用 option 配置 default global。 从 5.4.3 版本开始。 有关更多信息,请参阅错误处理errorChannelrequireSubscribers
9 一个布尔标志,指示 default global 必须忽略 dispatch 错误并将消息传递给下一个处理程序。 从 5.5 版本开始。errorChannel
10 终端节点中请求和回复超时的默认毫秒数。 默认值为 30 秒,以避免无限期阻塞。 可以配置为负值,以恢复终端节点中的无限阻塞行为。 从 6.2 版本开始。

可以通过将文件添加到 Classpath 或实例的 bean 来覆盖这些属性。 您无需提供所有属性,只需提供要覆盖的属性即可。/META-INF/spring.integration.propertiesIntegrationContextUtils.INTEGRATION_GLOBAL_PROPERTIES_BEAN_NAMEorg.springframework.integration.context.IntegrationPropertiesspring-doc.cn

从版本 5.1 开始,当为类别打开逻辑电平时,所有合并的全局属性都会在应用程序上下文启动后打印在日志中。 输出如下所示:DEBUGorg.springframework.integrationspring-doc.cn

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