自春季起弃用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
注释时,队列是自动创建的。
有没有更优雅的解决方案?
您仍然不需要这样做(预创建队列),因为一旦您执行了第一个streamBridge.send
,目的地将被解析(队列将被创建)并应用您的属性。也就是说,如果您仍然想这样做,您可以使用spring.cloud.stream.source
属性并指向您将在旧版本中使用@Output标识的目的地名称。例如:spring.cloud.stream.source=foo
.