响应式编程范式为开发高性能 Web 应用带来了新的机会和挑战。Spring 5 中的 WebFlux 模块可以作为开发响应式 Web 应用的基础。由于 Spring 框架的流行,WebFlux 会成为开发 Web 应用的重要趋势之一。
在上一节中我们对WebFlux进行了介绍并且使用WebFlux开发了一个极其简单的接口,接下来展示更多关于WebFlux 的用法
新建一个UserController.java
@RestController
@RequestMapping("/user")
public class UserController {
private final UserService userService;
@Autowired
public UserController(final UserService userService) {
this.userService = userService;
}
@ResponseStatus(value = HttpStatus.NOT_FOUND, reason = "Resource not found")
@ExceptionHandler(ResourceNotFoundException.class)
public void notFound() {
}
@GetMapping("")
public Flux<User> list() {
return this.userService.list();
}
@GetMapping("/{id}")
public Mono<User> getById(@PathVariable("id") final String id) {
return this.userService.getById(id);
}
@PostMapping("")
public Mo