绑定

如前所述,_绑定_在外部消息系统(例如,队列、主题等)与应用程序提供的_生产者_和_消费者_之间提供了桥梁。

以下示例展示了一个完全配置并正常运行的 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 应用程序。 在此上下文中,SupplierFunctionConsumer 类型的 Bean 被视为事实上的消息处理器,根据某些命名约定和规则触发绑定到由提供的 Binder 公开的目标,以避免额外的配置。