|
对于最新稳定版本,请使用spring-cloud-stream 5.0.1! |
显式绑定创建
在上一节中,我们解释了绑定是如何隐式创建的,由您的应用程序提供的Function、Supplier或Consumer个 bean 的名称驱动。
但是,有时您可能需要显式创建绑定,这些绑定不受任何功能约束。这通常用于通过StreamBridge支持与其他框架的集成。
Spring Cloud Stream 允许你通过 spring.cloud.stream.input-bindings 和 spring.cloud.stream.output-bindings 属性显式地定义输入和输出绑定。请注意到这些属性名是复数形式,这意味着你可以通过使用 ; 作为分隔符来定义多个绑定。
现在就看下面这个测试用例吧。
@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 {
}
如您所见,我们已经声明了两个输入绑定和两个输出绑定,而我们的配置中没有定义任何函数,但我们仍然能够成功创建这些绑定并访问其相应的通道。