Spring streamBridge启动时创建rabbitmq队列



自春季起弃用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.

最新更新