问题描述
我想在Spring Boot服务中将多个Flux结果收集到一个中。我的方法:
import grails.gorm.services.Service
@Service(Person)
interface PersonService {
int countByName(name)
}
该怎么做?
解决方法
您应该获取列表并将其粘贴到Flux
中,然后在其上flatMap
并获取每个新的Flux
。 flatMap
将自动将所有内容“拼合”为一个单独的Flux
以下示例应显示该概念:
public Flux<String> getData() {
final List<String> strings = new ArrayList<>();
strings.add("Foo");
strings.add("Bar");
return Flux.fromIterable(strings)
.flatMap(this::get);
}
private Flux<String> get(String s) {
return Flux.just(s + "Bar",s + "Foo");
}