@ResponseStatus注解起什么作用呢?
下文笔者讲述@ResponseStatus注解的功能简介说明,如下所示
@ResponseStatus注解简介
`@ResponseStatus`是Spring框架中一个注解 用于定义控制器方法或异常类HTTP 响应状态码 它可以帮助开发者更方便地控制 HTTP 响应的状态码和响应体。
`@ResponseStatus` 注解主要作用和使用场景
主要作用 指定 HTTP 状态码: 可以为控制器方法 或 异常类指定一个特定HTTP 状态码 简化响应处理: 无需手动设置响应状态码,直接通过注解实现 支持自定义原因短语: 除指定状态码外 还可以提供自定义的原因短语(可选)
`@ResponseStatus` 注解使用场景
1.在控制器方法上使用 当某个控制器方法执行成功时 可通过`@ResponseStatus`注解指定返回的 HTTP 状态码。 import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.RestController; @RestController public class MyController { @GetMapping("/success") @ResponseStatus(HttpStatus.OK) // 指定返回状态码为 200 public String success() { return "操作成功"; } @GetMapping("/created") @ResponseStatus(HttpStatus.CREATED) // 指定返回状态码为 201 public String created() { return "资源已创建"; } } 2.在异常类上使用 当抛出某个异常时 可通过`@ResponseStatus`注解 指定该异常对应HTTP状态码 import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; @ResponseStatus(value = HttpStatus.NOT_FOUND, reason = "资源未找到") // 指定状态码为 404 public class ResourceNotFoundException extends RuntimeException { public ResourceNotFoundException(String message) { super(message); } } 在控制器中抛出该异常时, Spring 会自动将响应状态码设置为 404 并返回自定义的原因短语。 @GetMapping("/resource/{id}") public String getResource(@PathVariable("id") Long id) { if (id == null || id <= 0) { throw new ResourceNotFoundException("ID 无效"); } return "资源信息"; }
`@ResponseStatus` 注解属性
| 属性名 | 描述 | |----------|--------------------------------------------------------------| | `value` | 必须指定,表示 HTTP 状态码,类型为 `HttpStatus` 枚举值。 | | `reason` | 可选,表示自定义的原因短语,通常用于覆盖默认的状态码描述信息。 |
`@ResponseStatus` 注解注意事项
- 优先级问题: 如果同时使用`@ResponseStatus`和`ResponseEntity` `ResponseEntity` 的优先级更高。 - 全局异常处理: 对于复杂的异常处理场景 建议结合`@ControllerAdvice` 和`@ExceptionHandler`使用 - 状态码选择: 根据业务逻辑选择合适HTTP 状态码 确保符合 RESTful 风格 ======================================================== `@ResponseStatus` 注解可简化HTTP响应状态码设置 适用于控制器方法的成功响应或异常类的错误响应 它能够提高代码的可读性和开发效率, 同时减少手动设置响应状态码的工作量
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。