gpt4 book ai didi

java - RestController 中的 Spring ExceptionHandler

转载 作者:行者123 更新时间:2023-11-30 08:38:32 25 4
gpt4 key购买 nike

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

@ExceptionHandler
public @ResponseBody Response someHandler(Exception ex) { ... }

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

最佳答案

从 Spring 4.0 开始,@ResponseBody 注释也可以添加到类型级别,在这种情况下它是继承的并且不需要添加到方法级别 .因此,如果您在 Type Level 上使用 @ResponseBody,您不需要需要在 @RequestMapping 上使用它和 ExceptionHandler

Can I remove @ResponseBody from handler?

@RestController 是结合了 @ResponseBody@Controller 的构造型注解。所以,是的,你可以删除它,因为 @RestContorller 在类型级别添加了一个 @ResponseBody

And If I use @ControllerAdvice is it possible to remove @ResponseBody annotation from it's handlers?

不,除非在类型级别添加 ResponseBody,否则不能在此处执行此操作。

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

关于java - RestController 中的 Spring ExceptionHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36497566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com