在上一节中,我们解释了如何隐式地创建绑定,这些绑定是由应用程序提供的 或 bean 的名称隐式驱动的。
但是,有时可能需要在绑定未绑定到任何函数的情况下显式创建绑定。这通常是为了
支持通过 与其他框架集成。Function
Supplier
Consumer
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 { }
正如你所看到的,我们已经声明了两个输入绑定和两个输出绑定,而我们的配置没有定义任何函数,但我们能够成功创建这些绑定并访问它们相应的通道。