|
如需使用最新稳定版本,请使用 Spring Integration 7.0.4! |
全局属性
某些全局框架属性可以通过在类路径上提供属性文件来覆盖。
默认属性可以在 org.springframework.integration.context.IntegrationProperties 类中找到。
以下列表显示了默认值:
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-channel 个实例将自动声明为 DirectChannel 个实例。 |
| 2 | 设置允许订阅的默认数量,例如 DirectChannel。
它可用于避免意外地将多个端点订阅到同一通道。
您可以通过设置 max-subscribers 属性在单个通道上覆盖此设置。 |
| 3 | 此属性提供了默认允许订阅的数量,例如在 PublishSubscribeChannel 上。
它可用于避免意外地将超过预期数量的端点订阅到同一通道。
您可以通过设置 max-subscribers 属性来为各个通道覆盖此设置。 |
| 4 | 默认 taskScheduler Bean 中可用的线程数。
参见 配置任务调度器。 |
| 5 | 当值为true时,如果网关在发送线程超时或已收到回复的情况下不期望收到回复,则到达网关回复通道的消息将抛出异常。 |
| 6 | 一个以逗号分隔的消息头名称列表,这些名称在复制操作期间不应被填充到 Message 实例中。
该列表由 DefaultMessageBuilderFactory Bean 使用,并传播到 IntegrationMessageHeaderAccessor 实例(请参阅 MessageHeaderAccessor API),用于通过 MessageBuilder 构建消息(请参阅 The MessageBuilder Helper Class)。
默认情况下,仅在消息构建过程中不复制 MessageHeaders.ID 和 MessageHeaders.TIMESTAMP。
自版本 4.3.2 起。 |
| 7 | 一个以逗号分隔的AbstractEndpoint个Bean名称模式列表(xxx*、xxx或*xxx、xxx*yyy),这些模式对应的Bean在应用程序启动时不应自动启动。
您可以通过SmartLifecycleRoleController(参见端点角色)按角色,或通过Lifecycle Bean注入,手动通过其Bean名称使用控制总线稍后启动这些端点。
您可以通过指定auto-startup XML注解或autoStartup注解属性,或在Bean定义中调用AbstractEndpoint.setAutoStartup()来显式覆盖此全局属性的效果。
自版本4.3.12起。 |
| 8 | 一个布尔标志,用于指示默认的全局 errorChannel 必须使用 requireSubscribers 选项进行配置。
自版本 5.4.3 起。
有关更多信息,请参阅 错误处理。 |
| 9 | 一个布尔标志,用于指示默认全局 errorChannel 必须忽略分发错误并将消息传递给下一个处理器。
自版本 5.5 起。 |
| 10 | 端点中请求和响应超时的默认毫秒数。 默认值为 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