此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 spring-cloud-stream 4.3.0! |
绑定
如前所述,绑定在外部消息传递系统(例如队列、主题等)和应用程序提供的生产者和消费者之间架起了一座桥梁。
以下示例显示了一个完全配置且正常运行的 Spring Cloud Stream 应用程序,该应用程序接收消息的有效负载作为String
类型(请参阅内容类型协商部分),将其记录到控制台,并在转换为大写后向下游发送。
@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 应用程序没有什么不同。它定义了一个类型的单个 beanFunction
就是这样。那么,它是如何成为 spring-cloud-stream 应用程序的呢?它之所以成为 spring-cloud-stream 应用程序,仅仅是因为存在 spring-cloud-stream 和 binder 依赖项以及类路径上的自动配置类,有效地将引导应用程序的上下文设置为 spring-cloud-stream 应用程序。在此上下文中,类型为Supplier
,Function
或Consumer
被视为事实上的消息处理程序,触发绑定到由提供的绑定器公开的目标,遵循某些命名约定和规则以避免额外的配置。