是否可以使用两个函数,其中第一个函数的输出是第二个函数的输入?
我的职能:
@Configuration
public class StringStream {
@Bean
public Supplier<Flux<String>> stringSupplier() {
return () -> Flux.interval(Duration.of(1L, ChronoUnit.SECONDS))
.map(v -> RandomStringUtils.randomAlphabetic(10));
}
@Bean
public Function<KStream<Bytes, String>, KStream<Bytes, String>> reverse() {
return strings -> strings.mapValues(StringUtils::reverse);
}
@Bean
public Function<KStream<Bytes, String>, KStream<Bytes, String>> uppercase() {
return strings -> strings.mapValues((ValueMapper<String, String>) String::toUpperCase);
}
@Bean
public Consumer<String> print() {
return message -> LOGGER.info("==> {}", message);
}
}
我的配置:
...
spring.cloud.stream:
function:
definition: stringSupplier;uppercase;reverse;print
spring.cloud.stream.bindings.stringSupplier-out-0:
content-type: text/plain
destination: strings-random
spring.cloud.stream.bindings.reverse-in-0:
destination: strings-random
spring.cloud.stream.bindings.reverse-out-0:
destination: strings-reversed
spring.cloud.stream.bindings.uppercase-in-0:
destination: strings-reversed
spring.cloud.stream.bindings.uppercase-out-0:
destination: strings-uppercase
spring.cloud.stream.bindings.print-in-0:
destination: strings-uppercase
它只向 strings-reversed
发送字符串。这是限制还是我做错了什么?
答案 0 :(得分:1)
是,解决的办法是使用 | 强>运算符来连接功能
例如此配置应该Concat的所有操作..
spring.cloud.stream:
function:
definition: stringSupplier|uppercase|reverse|print
引擎盖下弹簧云流用途弹簧云的功能,以提供函数组合到框架。