|
对于最新稳定版本,请使用spring-cloud-stream 5.0.1! |
Bindings
如前所述,绑定提供了外部消息传递系统(例如,队列、主题等)与应用程序提供的生产者和消费者之间的桥梁。
下面的示例展示了如何完全配置并运行一个Spring Cloud Stream应用程序,它接收消息的有效负载作为0类型(请参阅Content Type Negotiation(内容类型协商)部分),将其记录到控制台,然后在转换为大写后发送到下游。
@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();
};
}
}
上面的示例看起来与任何普通的 Spring Boot 应用程序都没有区别。它定义了单个类型为 Function 的 Bean,仅此而已。那么它是如何变成一个 Spring Cloud Stream 应用程序的?
因为它在类路径中存在 Spring Cloud Stream 和 Binder 依赖以及自动配置类,从而有效地将您的 Boot 应用程序设置为 Spring Cloud Stream 应用程序上下文。
在这个上下文中,Supplier、Function 或 Consumer 类型的 Bean 被视为默认的消息处理程序,触发绑定由提供的 Binder 提供的目的地,并遵循某些命名约定和规则以避免额外的配置。