Как мы можем преобразовать объект Flux <Employe> в объект Mono <Customers> в Spring Reactive
Как мы можем преобразовать объект Flux
Flux<Сотрудник> empFlux = getService(); // Он вернет список сотрудников Employe { private String id; информация о частной строке;}
// необходимо преобразовать данные empFlux в Mono
public class CusData {
private String id;
private String dept;
private String info;
public String getId() {
return id;
}
}
public class Customers {
private List<CusData> cusDataList;
public List<CusData> getCusDataList() {
return cusDataList;
}
public void setCusDataList(List<CusData> cusDataList) {
this.cusDataList = cusDataList;
}
} открытый класс Employe {
private String id;
private String info;
}
2 ответа
Если я понял ваш код, у вас должно быть что-то вроде этого:
Mono<Customers> customers = getService().map( employee -> CusData.builder()
.id( employee.getId() )
.info( employee.getInfo() )
.build() )
.collectList()
.map( cusDatas -> Customers.builder()
.cusDataList( cusDatas )
.build() );
У Flux есть удобный метод collectList(), который выполняет преобразование за вас. Я использовал String в примере ниже.
Фрагмент кода ниже.
Flux<String> stringFlux = Flux.just("Spring", "Spring Boot", "Reactive Spring")
.log();
Mono<List<String>> stringMono = stringFlux.collectList();