绑定
如前所述,绑定为外部消息系统(如队列、主题等)与应用提供的生产者和消费者之间提供了桥梁。
以下示例展示了一个完全配置且运行良好的 Spring Cloud Stream 应用,它接收了消息的有效载荷作为字符串输入(见内容类型协商部分),将其日志记录到控制台,并在转换为大写后发送下游。
@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应用没什么不同。它定义了一个类型的单一豆子功能仅此而已。那么,它如何成为一个 Spring-cloud-stream 应用呢?它之所以成为 spring-cloud-stream 应用,仅仅是因为存在 Spring-cloud-Stream 和 binder 依赖关系以及 classpath 上的自动配置类,实际上将你的启动应用的上下文设置为 Spring-cloud-stream 应用。在这个上下文中,有 的提供商,功能或消费者被视为事实上的消息处理程序,触发绑定到由提供绑定器暴露的目的地,遵循某些命名惯例和规则以避免额外配置。