クラスパス上の複数のバインダー
クラスパスに複数のバインダーが存在する場合、アプリケーションは、各宛先バインディングに使用されるバインダーを指定する必要があります。次の例に示すように、各バインダー構成には、単純なプロパティファイルである META-INF/spring.binders
ファイルが含まれています。
rabbit:\
org.springframework.cloud.stream.binder.rabbit.config.RabbitServiceAutoConfiguration
提供されている他のバインダー実装(Kafka など)にも同様のファイルが存在し、カスタムバインダー実装も提供することが期待されています。キーはバインダー実装の識別名を表しますが、値は構成クラスのコンマ区切りのリストであり、それぞれに型 org.springframework.cloud.stream.binder.Binder
の Bean 定義が 1 つだけ含まれています。
バインダーの選択は、spring.cloud.stream.defaultBinder
プロパティ(たとえば、spring.cloud.stream.defaultBinder=rabbit
)を使用してグローバルに実行することも、各バインディングでバインダーを構成することによって個別に実行することもできます。たとえば、Kafka から読み取り、RabbitMQ に書き込むプロセッサーアプリケーション(読み取りと書き込みにそれぞれ input
と output
という名前のバインディングを持つ)は、次の構成を指定できます。
spring.cloud.stream.bindings.input.binder=kafka
spring.cloud.stream.bindings.output.binder=rabbit