Spring Integration
Spring Boot 为使用 Spring Integration 提供了多种便利,包括 spring-boot-starter-integration
启动器。
Spring Integration 提供了消息传递的抽象,还支持 HTTP、TCP 等其他传输方式。
如果类路径中存在 Spring Integration,则会通过 @EnableIntegration
注解进行初始化。
Spring Integration 的轮询逻辑依赖于 自动配置的 TaskScheduler
。
默认的 PollerMetadata
(每秒轮询无限数量的消息)可通过 spring.integration.poller.*
配置属性进行自定义。
Spring Boot 还会根据额外 Spring Integration 模块的存在自动配置相关功能。
如果类路径中存在 spring-integration-jmx
,则消息处理统计信息会通过 JMX 发布。
如果存在 spring-integration-jdbc
,则可在启动时创建默认数据库模式,如下所示:
-
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
# 通过 TCP 连接到 RSocket 服务器
spring:
integration:
rsocket:
client:
host: "example.org"
port: 9898
-
Properties
-
YAML
spring.integration.rsocket.client.uri=ws://example.org
# 通过 WebSocket 连接到 RSocket 服务器
spring:
integration:
rsocket:
client:
uri: "ws://example.org"
更多详情请参见 IntegrationAutoConfiguration
及 IntegrationProperties
类。