Global Properties
Certain global framework properties can be overridden by providing a properties file on the classpath.
The default properties can be found in org.springframework.integration.context.IntegrationProperties class.
The following listing shows the default values:
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 | When true, input-channelinstances are automatically declared asDirectChannelinstances when not explicitly found in the application context. | 
| 2 | Sets the default number of subscribers allowed on, for example, a DirectChannel.
It can be used to avoid inadvertently subscribing multiple endpoints to the same channel.
You can override it on individual channels by setting themax-subscribersattribute. | 
| 3 | This property provides the default number of subscribers allowed on, for example, a PublishSubscribeChannel.
It can be used to avoid inadvertently subscribing more than the expected number of endpoints to the same channel.
You can override it on individual channels by setting themax-subscribersattribute. | 
| 4 | The number of threads available in the default taskSchedulerbean.
See Configuring the Task Scheduler. | 
| 5 | When true, messages that arrive at a gateway reply channel throw an exception when the gateway is not expecting a reply (because the sending thread has timed out or already received a reply). | 
| 6 | A comma-separated list of message header names that should not be populated into Messageinstances during a header copying operation.
The list is used by theDefaultMessageBuilderFactorybean and propagated to theIntegrationMessageHeaderAccessorinstances (seeMessageHeaderAccessorAPI) used to build messages viaMessageBuilder(see TheMessageBuilderHelper Class).
By default, onlyMessageHeaders.IDandMessageHeaders.TIMESTAMPare not copied during message building.
Since version 4.3.2. | 
| 7 | A comma-separated list of AbstractEndpointbean names patterns (xxx*,xxx,*xxxorxxx*yyy) that should not be started automatically during application startup.
You can manually start these endpoints later by their bean name through a Control Bus, by their role with theSmartLifecycleRoleController(see Endpoint Roles), or byLifecyclebean injection.
You can explicitly override the effect of this global property by specifyingauto-startupXML annotation or theautoStartupannotation attribute or by callingAbstractEndpoint.setAutoStartup()in the bean definition.
Since version 4.3.12. | 
| 8 | A boolean flag to indicate that default global errorChannelmust be configured with therequireSubscribersoption.
Since version 5.4.3.
See Error Handling for more information. | 
| 9 | A boolean flag to indicate that default global errorChannelmust ignore dispatching errors and pass the message to the next handler.
Since version 5.5. | 
| 10 | The default number of milliseconds for request and reply timeouts in endpoints. Default value is 30 seconds to avoid indefinite blocking. Can be configured to a negative value to restore infinite blocking behavior in endpoints. Since version 6.2. | 
These properties can be overridden by adding a /META-INF/spring.integration.properties file to the classpath or an IntegrationContextUtils.INTEGRATION_GLOBAL_PROPERTIES_BEAN_NAME bean for the org.springframework.integration.context.IntegrationProperties instance.
You need not provide all the properties — only those that you want to override.
Starting with version 5.1, all the merged global properties are printed in the logs after application context startup when a DEBUG logic level is turned on for the org.springframework.integration category.
The output looks like this:
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