route
return RouterFunction.route(RequestPredicates.GET("/person/find/all"),为啥我的这句话中route报错,
代码:
package com.example.somefrist.config;
import com.example.somefrist.domain.User;
import com.example.somefrist.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.reactive.function.server.RequestPredicates;
import org.springframework.web.reactive.function.server.RouterFunction;
import org.springframework.web.reactive.function.server.ServerResponse;
import reactor.core.publisher.Flux;
import java.util.Collection;
/**
*
*
* 路由器函数注释
*/
@Configuration
//类所处的对象是配置对象
public class RouterFunctionConfiguration {
/**
* Servlet
* 请求接口 ServletRequest 或者 HttpServletRequest
* 响应接口 ServletResponse 后者 HttpServletResponse
*
* spring5.0重新定义了服务端的请求和响应接口:
* 请求接口:ServerRequest
* 响应接口:ServerResponse
*
* 既可以支持Servlet规范,也可以支持自定义,比如:Netty(Web Server)
*
*
* 以本利:
* 定义GET请求,并且返回所有的用户对象, URI:/person/find/all
*
*
* Flux是0-N个对象集合
* Mono是 0-1 个对象集合
*
* Reactive 中 Flux 或者 Mono 它是异步处理
*
* 集合对象基本上是同步处理(阻塞式)
*
* Flux 或者 Mono 都是 Publisher,
*/
@Bean
@Autowired
public RouterFunction<ServerResponse> personFindAll (UserRepository userRepository){
return RouterFunction.route(RequestPredicates.GET("/person/find/all"),
request->{
Collection<User> users = userRepository.findAll();
//返回所有用户对象
//Mono<ServerResponse> response = null;
Flux<User> userFlux = Flux.fromIterable(users);
//ServerResponse.ok().body(userFlux, User.class);
return ServerResponse.ok().body(userFlux, User.class);
});
}
}报错原因

