Можно ли использовать 2 функции, где выход первой функции является входом второй?
Мои функции:
@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
. Это ограничение или я что-то не так делаю?