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