|
此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 spring-cloud-stream 4.2.1! |
显式绑定创建
本节介绍显式创建绑定的声明性方法。该框架还提供了创建绑定的编程方式。了解更多 信息,请参阅 定义新绑定和管理现有绑定
在上一节中,我们解释了如何由Function,Supplier或Consumerbean 的 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 {
}
正如你所看到的,我们已经声明了两个 input bindings 和 两个output bindings,而我们的配置没有定义函数,但我们能够成功地创建这些绑定并访问它们相应的通道。
与功能绑定名称不同,显式创建的绑定
不需要其他后缀,例如in-0/out-0鉴于: |
-
绑定名称不受函数支持
-
根据定义,它已经表示输入或输出绑定
-
它不能有多个 input 或 output。
所以spring.cloud.stream.output-bindings=hello将导致名为hello(不是hello-out-0),您可以进一步将其称为spring.cloud.stream.bindings.hello.destination=foobar