【发布时间】:2017-11-13 16:39:52
【问题描述】:
当控制器方法响应类型为void 时,我试图让 spring 自动返回 HTTP 状态 204。例如:
假设我有一个这样的控制器方法:
@DeleteMapping(value = "/{heroId}")
public void delete(@PathVariable Long heroId) {
heroService.delete(heroId);
}
我正在寻找一种无需使用@ResponseStatus(value = HttpStatus.NO_CONTENT) 注释方法即可自动返回204 的方法。
是否可以使用处理程序或 AOP 或其他工具来执行此操作?
PS。我看到了这个答案,Return HTTP 204 on null with spring @RestController,但没有回答我关于如何为具有void 返回类型的方法实现这一点的具体问题。此外,此方法应适用于没有输入参数的方法。
【问题讨论】:
-
不知道是否可以使用
ResponseBodyAdvice更改状态,但我看到了:stackoverflow.com/q/26756811/5473627。也许有帮助 -
你明白,这样你会让所有其他控制器方法去思考一些
AOP代码,对吧?似乎您只想这样做一次 - 假设在启动时并且所有这些注释只放置一次 -
@YoshuaNahar 我能够根据您的建议实施解决方案
-
我真的很想知道为什么这不是spring web的默认行为?!这是良好 REST API 中的既定做法,可在没有内容时提供 resp 代码 204。
标签: java spring spring-mvc