自从 spring 弃用 org.springframework.cloud.stream.annotation.Output
注释。
我正在使用 streamBridge 新 API。
我想知道在启动时自动创建队列的最佳方法是什么,比如注释的行为。
我找到了一个使用 spring.cloud.stream.function.definition=myChannel
来创建队列的解决方法
在这个示例中
@Bean
fun myChannel(): Supplier<Flux<Message<String>>> = Supplier {
Flux.empty()
}
和 application.properties:
bindings:
myChannel-out-0:
destination: Mystuff
producer:
required-groups: mychannel
当我使用 @Output
注释时,队列是自动创建的。
还有其他更优雅的解决方案吗?
答案 0 :(得分:2)
您仍然不需要这样做(预先创建队列),因为一旦您执行第一个 streamBridge.send
,目标将被解析(将创建队列)并应用您的属性。
也就是说,如果您仍然想要这样做,您可以使用 spring.cloud.stream.source
属性并指向您将在旧版本中使用 @Output 标识的目标名称。例如spring.cloud.stream.source=foo
。