Spring Integration
Spring Boot 为使用 Spring Integration 提供了多项便利,包括 spring-boot-starter-integration starter。Spring Integration 提供了对消息传递以及其他传输协议(如 HTTP、TCP 等)的抽象。如果你的 classpath 中包含 Spring Integration,它将通过 @EnableIntegration 注解进行初始化。
Spring Integration 的轮询逻辑依赖于 自动配置的 TaskScheduler。默认的 PollerMetadata(每秒无限制地轮询消息)可以通过 spring.integration.poller.* 配置属性进行自定义。
Spring Boot 还会配置一些特性,这些特性由额外的 Spring Integration 模块的存在触发。如果 spring-integration-jmx 也在 classpath 中,则消息处理统计信息会通过 JMX 发布。如果 spring-integration-jdbc 可用,则可以在启动时创建默认的数据库 schema,如下所示:
- Properties
- YAML
spring.integration.jdbc.initialize-schema=always
spring:
integration:
jdbc:
initialize-schema: "always"
如果 spring-integration-rsocket 可用,开发者可以使用 spring.rsocket.server.* 属性配置一个 RSocket 服务器,并让其使用 IntegrationRSocketEndpoint 或 RSocketOutboundGateway 组件来处理传入的 RSocket 消息。该基础设施可以处理 Spring Integration RSocket 通道适配器和 @MessageMapping 处理器(前提是已配置 spring.integration.rsocket.server.message-mapping-enabled)。
Spring Boot 还可以使用配置属性自动配置一个 ClientRSocketConnector:
- Properties
- YAML
spring.integration.rsocket.client.host=example.org
spring.integration.rsocket.client.port=9898
# Connecting to a RSocket server over TCP
spring:
integration:
rsocket:
client:
host: "example.org"
port: 9898
- Properties
- YAML
spring.integration.rsocket.client.uri=ws://example.org
# Connecting to a RSocket Server over WebSocket
spring:
integration:
rsocket:
client:
uri: "ws://example.org"
有关更多详情,请参阅 IntegrationAutoConfiguration 和 IntegrationProperties 类。