【发布时间】:2020-08-04 17:09:08
【问题描述】:
我有一个界面
public interface Enricher {
Mono<MyObject> enrich(MyObject obj);
}
我有这个接口的实现,它返回更新后的 MyObject。
我有另一个名为 CompositeEnricher 的实现,它在构造函数中接受 Enricher 列表并执行丰富。
在非反应性的世界里,我会写这样的东西
/*
Please note that following code is applicable only if Enricher interface returns MyObject instead of Mono<MyObject>
*/
public class CompositeEnricher implements Enricher {
private final List<Enricher> enrichers;
public CompositeEnricher(List<Enricher> enrichers) {
this.enrichers = enrichers;
}
@Override
public MyObject enrich(MyObject myObject) {
MyObject updated = myObject;
for(Enricher enricher : enrichers) {
updated = enricher.enrich(updated);
}
return updated;
}
}
如何将其更改为反应式,以便 Enricher 的每个实现都返回 Mono,包括实现 Enricher 接口的 CompositeEnricher?
【问题讨论】:
标签: java spring spring-boot spring-webflux project-reactor