@Configuration
public class RouterFunctionConfiguration{
/**
* Servlet
* 请求接口:ServletRequest 或者 HttpServletRequest
* 相应接口:ServletResponse 或者 HttpServletResponse
* Spring 5.0 重新定义了服务请求和响应接口:
* 请求接口:ServerRequest
* 响应接口:ServerResponse
* 既可支持 Servlet 规范,也可以支持自定义,比如 Netty(Web Server)
* 例:
* 定义 GET 请求,病返回所有用户对象 URL:/person/find/all
*/
@Bean
@Autowired
public RouterFunction<ServerResponse> personFindAll(UserRepository userRepository){
RouterFunction.route(RequestPredicates.GET("/person/find/all"),
request -> {
//返回所有的用户对象
Collection<User> users = UserRepository.findAll();
Flux<User> userFlux = Flux.fromIterable(users);
return ServerResponse.ok().body(userFlux, User.class);
});
}
}
代替@RequestMapping,用函数式声明。
调用:http://localhost:8080/person/find/all