Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.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
Java 在ServerResponse中将mono作为标头值传递_Java_Spring_Mono_Spring Webflux - Fatal编程技术网

Java 在ServerResponse中将mono作为标头值传递

Java 在ServerResponse中将mono作为标头值传递,java,spring,mono,spring-webflux,Java,Spring,Mono,Spring Webflux,我不熟悉functional endpoints/spring webflux,我试图将mono作为头值返回,但我找不到方法,因为header方法只接受字符串 路由器功能 @Bean RouterFunction<ServerResponse> productRoutes() { return route(GET("/products").and(accept(MediaType.APPLICATION_JSON)), getAllProductsHand

我不熟悉functional endpoints/spring webflux,我试图将mono作为头值返回,但我找不到方法,因为
header
方法只接受字符串

路由器功能

@Bean
RouterFunction<ServerResponse> productRoutes() {
    return route(GET("/products").and(accept(MediaType.APPLICATION_JSON)), getAllProductsHandler());
}
private HandlerFunction<ServerResponse> getAllProductsHandler() {
    return req -> {

        // Here the products and the totalProducts are being returned from the service layer 

        Flux<Product> products = Flux.just(new Product("123"), new Product("234"));
        Mono<Integer> totalProducts = Mono.just(2);

        return ok()
                .header("totalCount", totalProducts)
                .body(products, Product.class);
    };
}
@Bean
RouterFunction productRoutes(){
返回路由(GET(“/products”)。和(accept(MediaType.APPLICATION_JSON)),getAllProductsHandler();
}
处理函数

@Bean
RouterFunction<ServerResponse> productRoutes() {
    return route(GET("/products").and(accept(MediaType.APPLICATION_JSON)), getAllProductsHandler());
}
private HandlerFunction<ServerResponse> getAllProductsHandler() {
    return req -> {

        // Here the products and the totalProducts are being returned from the service layer 

        Flux<Product> products = Flux.just(new Product("123"), new Product("234"));
        Mono<Integer> totalProducts = Mono.just(2);

        return ok()
                .header("totalCount", totalProducts)
                .body(products, Product.class);
    };
}
private handler函数getAllProductsHandler(){
返回请求->{
//这里,产品和totalProducts从服务层返回
通量产品=通量(新产品(“123”)、新产品(“234”);
Mono totalProducts=Mono.just(2);
返回ok()
.标题(“totalCount”,totalProducts)
.主体(产品、产品、类别);
};
}

在这里,将mono作为标题值返回的正确方法是什么?

通过链接mono并构建您的响应

final Mono<Integer> totalProducts = Mono.just(2);

return totalProducts.flatMap(value -> ok()
                .header("totalCount", value)
                .body(products, Product.class)
        );
final Mono totalProducts=Mono.just(2);
返回totalProducts.flatMap(值->确定()
.header(“totalCount”,值)
.body(产品、产品、类别)
);