Classpath 中的多個 Binder
當 classpath 中存在多個 binder 時,應用必須為每個目標繫結指示使用哪個 binder。每個 binder 配置都包含一個 META-INF/spring.binders
檔案,這是一個簡單的 properties 檔案,如下例所示
rabbit:\
org.springframework.cloud.stream.binder.rabbit.config.RabbitServiceAutoConfiguration
其他提供的 binder 實現(例如 Kafka)也有類似的檔案,自定義 binder 實現也應提供這些檔案。key 表示 binder 實現的識別名稱,而 value 是配置類的逗號分隔列表,每個配置類只包含一個型別為 org.springframework.cloud.stream.binder.Binder
的 bean 定義。
Binder 選擇可以全域性進行,使用 spring.cloud.stream.defaultBinder
屬性(例如,spring.cloud.stream.defaultBinder=rabbit
),或者單獨為每個繫結配置 binder。例如,一個處理器應用(分別具有名為 input
和 output
的讀寫繫結),如果從 Kafka 讀取並寫入 RabbitMQ,可以指定以下配置
spring.cloud.stream.bindings.input.binder=kafka
spring.cloud.stream.bindings.output.binder=rabbit