Как мы можем преобразовать объект Flux <Employe>в объект Mono <Customers>в Spring Reactive - PullRequest
0 голосов
/ 16 октября 2019

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

Flux empFlux = getService ();// Возвращает список Employe Employe {private String id;private String info;}

// необходимо преобразовать данные empFlux в Mono

открытый класс CusData {

private  String id;
private String  dept;
private  String info;

public String getId() {
    return id;
}

}

publicкласс 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 ]

0 голосов
/ 17 октября 2019

Если я понял ваш код, у вас должно быть что-то вроде этого:

  Mono<Customers> customers = getService().map( employee -> CusData.builder()
                                                                   .id( employee.getId() )
                                                                   .info( employee.getInfo() )
                                                                   .build() )
                                          .collectList()
                                          .map( cusDatas -> Customers.builder()
                                                                     .cusDataList( cusDatas )
                                                                     .build() );
0 голосов
/ 16 октября 2019

Flux имеет удобный метод collectList (), который позаботится о том, чтобы выполнить преобразование за вас. Я использовал строку в приведенном ниже примере.

Фрагмент кода ниже.

Flux<String> stringFlux = Flux.just("Spring", "Spring Boot", "Reactive Spring")
                .log();

        Mono<List<String>> stringMono = stringFlux.collectList();
...