Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 弹簧反应堆连接2单体_Spring Boot_Project Reactor_Reactor - Fatal编程技术网

Spring boot 弹簧反应堆连接2单体

Spring boot 弹簧反应堆连接2单体,spring-boot,project-reactor,reactor,Spring Boot,Project Reactor,Reactor,我需要使用SpringReactor以反应式方式连接到数据库。 下面是我想要得到的场景-> 1.连接到数据库并获取响应1 2.然后连接到db,在提供response1.parameter的同时获取response2 将这两个连接到单个响应中,并以字符串形式发送回用户 由于所有对象都是唯一的,所以我计划使用Mono Mono<Response1> r1 = qrepo.findByID(id) Mono<Response2> r2 = qrepo.findByID(r1.

我需要使用SpringReactor以反应式方式连接到数据库。 下面是我想要得到的场景->

  • 1.连接到数据库并获取响应1

    2.然后连接到db,在提供response1.parameter的同时获取response2

  • 将这两个连接到单个响应中,并以字符串形式发送回用户
  • 由于所有对象都是唯一的,所以我计划使用Mono

    Mono<Response1> r1 = qrepo.findByID(id)
    Mono<Response2> r2 = qrepo.findByID(r1.getParam())
    
    Mono<String> combined = Mono.when(r1, r2).map(t -> { 
                StringBuffer sb = new StringBuffer();
                    sb.append(r1.getProp1());
                    sb.append(r2.getProp2());
    
    Mono r1=qrepo.findByID(id)
    Mono r2=qrepo.findByID(r1.getParam())
    Mono combined=Mono.when(r1,r2).map(t->{
    StringBuffer sb=新的StringBuffer();
    sb.append(r1.getProp1());
    sb.append(r2.getProp2());
    

    但这不适用于我

    您应该获取response1,然后将其结果平面映射到access参数,并将其传递到存储库,然后将结果映射到字符串

        Mono<String> resultMono = qrepo.findByID(id)
                .flatMap(response1 -> qrepo.findByID(response1.getParam())
                        .map(response2 -> {
                            StringBuilder sb = new StringBuilder();
                            sb.append(response1.getProp1());
                            sb.append(response2.getProp2());
                            return sb.toString();
                        }));
    
    Mono resultMono=qrepo.findByID(id)
    .flatMap(response1->qrepo.findByID(response1.getParam())
    .map(响应2->{
    StringBuilder sb=新的StringBuilder();
    sb.append(response1.getProp1());
    sb.append(response2.getProp2());
    使某人返回字符串();
    }));
    
    您应该获取response1,然后将其结果映射到access参数,并将其传递到存储库,然后将结果映射到字符串

        Mono<String> resultMono = qrepo.findByID(id)
                .flatMap(response1 -> qrepo.findByID(response1.getParam())
                        .map(response2 -> {
                            StringBuilder sb = new StringBuilder();
                            sb.append(response1.getProp1());
                            sb.append(response2.getProp2());
                            return sb.toString();
                        }));
    
    Mono resultMono=qrepo.findByID(id)
    .flatMap(response1->qrepo.findByID(response1.getParam())
    .map(响应2->{
    StringBuilder sb=新的StringBuilder();
    sb.append(response1.getProp1());
    sb.append(response2.getProp2());
    使某人返回字符串();
    }));
    
    使用Mono.zip

    例如:

    Mono.zip(Mono.just("hello"), Mono.just("world")).map(tuple2 -> {
    
          return tuple2.getT1() + tuple2.getT2();
        });
    

    Mono.zip将给定的Mono聚合成一个新的Mono,当所有给定的Mono都生成了一个项目时,该Mono将得到满足。

    使用Mono.zip

    例如:

    Mono.zip(Mono.just("hello"), Mono.just("world")).map(tuple2 -> {
    
          return tuple2.getT1() + tuple2.getT2();
        });
    
    Mono.zip将给定的Mono聚合成一个新的Mono,当所有给定的Mono都生成一个项目时,该Mono将得到满足