绑定
如前所述,_绑定_在外部消息系统(例如,队列、主题等)与应用程序提供的_生产者_和_消费者_之间提供了桥梁。
以下示例展示了一个完全配置并正常运行的 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 应用程序没什么不同。它定义了一个 Function
类型的 bean,仅此而已。那么,它如何成为一个 Spring Cloud Stream 应用程序呢?
它之所以成为 Spring Cloud Stream 应用程序,仅仅是因为类路径上存在 Spring Cloud Stream 和 Binder 依赖项以及自动配置类,有效地将您的 Boot 应用程序的上下文设置为 Spring Cloud Stream 应用程序。
在此上下文中,Supplier
、Function
或 Consumer
类型的 Bean 被视为事实上的消息处理器,根据某些命名约定和规则触发绑定到由提供的 Binder 公开的目标,以避免额外的配置。