类路径上的多个绑定器
当类路径上存在多个绑定器时,应用程序必须指示每个目标绑定要使用哪个绑定器。每个绑定器配置都包含一个 `META-INF/spring.binders` 文件,这是一个简单的属性文件,如下例所示:
rabbit:\
org.springframework.cloud.stream.binder.rabbit.config.RabbitServiceAutoConfiguration
其他提供的绑定器实现(例如 Kafka)也存在类似的文件,并且自定义绑定器实现也应该提供它们。键表示绑定器实现的标识名称,而值是配置类的逗号分隔列表,每个配置类都包含一个且只有一个类型为 `org.springframework.cloud.stream.binder.Binder` 的 bean 定义。
绑定器选择可以通过全局方式使用 `spring.cloud.stream.defaultBinder` 属性执行(例如,`spring.cloud.stream.defaultBinder=rabbit`),也可以通过在每个绑定上配置绑定器来单独执行。例如,一个处理器应用程序(分别具有名为 `input` 和 `output` 的读写绑定)从 Kafka 读取数据并写入 RabbitMQ,可以指定以下配置:
spring.cloud.stream.bindings.input.binder=kafka
spring.cloud.stream.bindings.output.binder=rabbit