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 模組時會被觸發。如果 classpath 中也存在 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
# 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
類。