Как мы можем преобразовать объект Flux <Employe> в объект Mono <Customers> в Spring Reactive

Как мы можем преобразовать объект Flux в объект Mono?

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();
Другие вопросы по тегам