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