此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 spring-cloud-stream 4.1.4spring-doc.cn

显式绑定创建

在上一节中,我们解释了如何由应用程序提供的 或 bean 的名称隐式驱动地创建绑定。 但是,有时可能需要在绑定未绑定到任何函数的情况下显式创建绑定。这通常是为了 支持通过 与其他框架集成。FunctionSupplierConsumerStreamBridgespring-doc.cn

Spring Cloud Stream 允许您通过 和 properties 显式定义 input 和 output bindings。请注意属性名称中的复数形式,允许您仅用作分隔符来定义多个绑定。 以下面的测试用例为例:spring.cloud.stream.input-bindingsspring.cloud.stream.output-bindings;spring-doc.cn

@Test
public void testExplicitBindings() {
	try (ConfigurableApplicationContext context = new SpringApplicationBuilder(
		TestChannelBinderConfiguration.getCompleteConfiguration(EmptyConfiguration.class))
				.web(WebApplicationType.NONE)
				.run("--spring.jmx.enabled=false",
					"--spring.cloud.stream.input-bindings=fooin;barin",
					"--spring.cloud.stream.output-bindings=fooout;barout")) {


	. . .
	}
}

@EnableAutoConfiguration
@Configuration
public static class EmptyConfiguration {
}

正如你所看到的,我们已经声明了两个 input bindings 和 两个output bindings,而我们的配置没有定义函数,但我们能够成功地创建这些绑定并访问它们相应的通道。spring-doc.cn