spring 统一响应类 result
时间: 2024-09-27 19:11:48 浏览: 30
Spring Boot处理全局统一异常的两种方法与区别
在 Spring 框架中,为了处理通用的异步操作结果或业务逻辑返回,通常会使用一些自定义的统一结果类(如 ResponseEntity、Result、DataResult 等),这些类的作用是封装业务数据以及状态信息。例如,我们可以创建一个 Result 类来表示成功或失败的结果,并包含具体的业务数据。
```java
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;
public class Result<T> {
private boolean success; // 是否成功
private HttpStatus status; // HTTP 状态码
private T data; // 业务数据
private String message; // 错误信息,如果失败则非空
public Result(T data) {
this.success = true;
this.data = data;
}
public Result(HttpStatus status, String message) {
this.success = false;
this.status = status;
this.message = message;
}
// getter 和 setter 方法...
@ResponseStatus(HttpStatus.OK)
public static <T> Result<T> ok(T data) {
return new Result<>(data);
}
@ResponseStatus(HttpStatus.BAD_REQUEST)
public static Result<Void> badRequest(String message) {
return new Result<>(HttpStatus.BAD_REQUEST, message);
}
}
// 使用示例
Result<User> userServiceOperation(User request) {
try {
User user = userService.save(request);
return Result.ok(user);
} catch (Exception e) {
return Result.badRequest("保存用户失败:" + e.getMessage());
}
}
```
在这个例子中,`Result` 类包含了成功与否的状态,HTTP 状态码,业务数据以及错误信息。Spring 提供了 `@ResponseStatus` 注解来设置默认的 HTTP 状态码,使得在异常处理时可以方便地返回相应的响应。
阅读全文