我有一个像这样的控制器(在Kotlin):
@RestController
@RequestMapping("/")
class CustomerController (private val service: CustomerService) {
@GetMapping("/{id}")
fun findById(@PathVariable id: String,
@RequestHeader(value = IF_NONE_MATCH) versionHeader: String?): Mono> =
return service.findById(id)
.switchIfEmpty(Mono.error(NotFoundException()))
.map {
// ETag stuff ...
ok().eTag("...").body(...)
}
}
我想知道是否有一个更好的方法而不是抛出一个用@ResponseStatus注释的异常(代码= NOT_FOUND)
解决方法:
当Spring 5稳定时,我想使用RouteFunction而不是@RestController.定义HandlerFunction来处理请求,然后声明一个RouteFunction以将请求映射到HandlerFunction:
public Mono get(ServerRequest req) {
return this.posts
.findById(req.pathVariable("id"))
.flatMap((post)