此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 spring-cloud-stream 4.1.4spring-doc.cn

绑定

如前所述,Bindings 在外部消息传递系统(例如,队列、主题等)和应用程序提供的 ProducerConsumer 之间架起了一座桥梁。spring-doc.cn

以下示例显示了一个完全配置且正常运行的 Spring Cloud Stream 应用程序,该应用程序接收消息的有效负载 作为类型(请参阅 内容类型协商 部分),将其记录到控制台,并在将其转换为大写后将其发送到下游。Stringspring-doc.cn

@SpringBootApplication
public class SampleApplication {

	public static void main(String[] args) {
		SpringApplication.run(SampleApplication.class, args);
	}

	@Bean
	public Function<String, String> uppercase() {
	    return value -> {
	        System.out.println("Received: " + value);
	        return value.toUpperCase();
	    };
	}
}

上面的示例看起来与任何 vanilla spring-boot 应用程序没有什么不同。它定义了一个类型的 bean,仅此而已。那么,它是如何成为 spring-cloud-stream 应用程序的呢? 它成为 spring-cloud-stream 应用程序,仅仅是因为存在 spring-cloud-stream 和 binder 依赖项 和 auto-configuration 类,有效地将 boot 应用程序的上下文设置为 spring-cloud-stream 应用程序。 在此上下文中,类型的 bean 或 被视为事实上的消息处理程序触发 绑定到提供的 Binder 按照某些命名约定公开的目标,并且 规则来避免额外的配置。FunctionSupplierFunctionConsumerspring-doc.cn