首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹簧ExceptionHandler in RestController

弹簧ExceptionHandler in RestController
EN

Stack Overflow用户
提问于 2016-04-08 10:40:17
回答 1查看 500关注 0票数 2

我有一个注释为@RestController的控制器,因此它会自动将@ResponseBody添加到所有带有@RequestMapping注释的方法中。但是,如果我使用@ExceptionHandler注释并返回一些响应:

代码语言:javascript
复制
@ExceptionHandler
public @ResponseBody Response someHandler(Exception ex) { ... }

我可以从处理程序中删除@ResponseBody吗?如果我使用@ControllerAdvice,是否可以从它的处理程序中删除@ResponseBody注释?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-08 11:01:24

从Spring4.0开始,还可以在类型级别添加@ResponseBody注释,在这种情况下,它是继承的,不需要在方法级别添加。因此,如果在类型级别上使用@ResponseBody,则需要在@RequestMappingExceptionHandler上使用而不是

我可以从处理程序中删除@ResponseBody吗?

@RestController是一个将@ResponseBody@Controller结合在一起的原型注释。所以,您可以删除它,因为@RestContorller在类型级别上添加了一个@ResponseBody

如果我使用@ControllerAdvice,是否可以从它的处理程序中删除@ResponseBody注释?

不,除非在类型级别上添加ResponseBody,否则这里不能这样做。

在这两种情况下,如果将ResponseEntity的一个实例作为返回值返回,则不需要ResponseBody

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36497566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档