SpringCloud 基于Reactor的处理程序
2023-11-26 16:23 更新
基于Reactor的处理程序可以具有以下参数类型:
- 对于带有
@Input
注释的参数,它支持ReactorFlux
类型。入站Flux的参数化遵循与处理单个消息时相同的规则:可以是整个Message
,可以是Message
有效负载的POJO或由于以下原因而产生的POJO:基于Message
内容类型标头的转换。提供了多个输入。 - 对于带有
Output
注释的参数,它支持FluxSender
类型,该类型将方法生成的Flux
与输出连接起来。一般而言,仅在该方法可以具有多个输出时才建议将输出指定为参数。
基于Reactor的处理程序支持Flux
的返回类型。在这种情况下,必须用@Output
进行注释。当单个输出Flux
可用时,建议使用该方法的返回值。
以下示例显示了基于Reactor的Processor
:
@EnableBinding(Processor.class) @EnableAutoConfiguration public static class UppercaseTransformer { @StreamListener @Output(Processor.OUTPUT) public Flux<String> receive(@Input(Processor.INPUT) Flux<String> input) { return input.map(s -> s.toUpperCase()); } }
使用输出参数的同一处理器看起来像以下示例:
@EnableBinding(Processor.class) @EnableAutoConfiguration public static class UppercaseTransformer { @StreamListener public void receive(@Input(Processor.INPUT) Flux<String> input, @Output(Processor.OUTPUT) FluxSender output) { output.send(input.map(s -> s.toUpperCase())); } }
以上内容是否对您有帮助:
更多建议: