在Spring Boot中,R
类并不是一个标准的、内置的类。通常情况下,R
类是开发者自定义的一个类,用于封装API响应的结果。这种做法在很多RESTful API开发中非常常见,因为它可以标准化API的响应格式,使得前端开发更加方便和一致。
典型的 R
类设计
一个典型的R
类可能包含以下几个部分:
- 状态码:表示请求的成功或失败。
- 消息:描述请求的结果或错误信息。
- 数据:实际的业务数据。
示例代码
以下是一个简单的R
类的实现:
public class R<T> {
private int code;
private String message;
private T data;
// 构造方法
public R(int code, String message, T data) {
this.code = code;
this.message = message;
this.data = data;
}
// 成功响应的工厂方法
public static <T> R<T> ok(T data) {
return new R<>(200, "成功", data);
}
// 失败响应的工厂方法
public static <T> R<T> error(String message) {
return new R<>(500, message, null);
}
// Getter和Setter方法
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
使用示例
假设你有一个Spring Boot控制器,用于处理用户的请求,可以使用R
类来封装响应:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api")
public class UserController {
@GetMapping("/users")
public R<List<User>> getUsers() {
List<User> users = userService.getAllUsers();
return R.ok(users);
}
@GetMapping("/user/{id}")
public R<User> getUserById(@PathVariable Long id) {
User user = userService.getUserById(id);
if (user != null) {
return R.ok(user);
} else {
return R.error("用户不存在");
}
}
}
详细解释
-
类定义:
public class R<T> { private int code; private String message; private T data;
- 泛型
<T>
:表示响应数据的类型可以是任意类型。 code
:表示请求的状态码,通常200表示成功,500表示服务器错误。message
:表示请求的结果或错误信息。data
:表示实际的业务数据。
- 泛型
-
构造方法:
public R(int code, String message, T data) { this.code = code; this.message = message; this.data = data; }
- 构造方法用于初始化
R
对象。
- 构造方法用于初始化
-
工厂方法:
public static <T> R<T> ok(T data) { return new R<>(200, "成功", data); } public static <T> R<T> error(String message) { return new R<>(500, message, null); }
ok
方法:用于创建成功的响应。error
方法:用于创建失败的响应。
-
Getter和Setter方法:
public int getCode() { return code; } public void setCode(int code) { this.code = code; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public T getData() { return data; } public void setData(T data) { this.data = data; }
- 提供了属性的访问方法。
总结
在Spring Boot中,R
类是一个自定义的类,用于封装API响应的结果。通过使用R
类,可以标准化API的响应格式,使得前端开发更加方便和一致。希望这能帮助你更好地理解Spring Boot中的R
类。