在 ruoyi-vue 的 common/core/domain 文件夹里,存放的是 领域模型类(Domain Objects) ,也就是 Java Bean 或 POJO,用于在业务逻辑中封装数据。
简单说:domain 文件夹就是 存放数据载体的地方,通常包括以下几类:
1️⃣ BaseEntity(基础实体类)
-
定义了数据库表共有字段,比如:
createBy(创建人)createTime(创建时间)updateBy(更新人)updateTime(更新时间)remark(备注)
-
所有实体类可以继承它,减少重复代码。
例子:
java
public class BaseEntity {
private String createBy;
private Date createTime;
private String updateBy;
private Date updateTime;
private String remark;
// getter setter ...
}
2️⃣ BaseDTO 或具体 DTO 类
- DTO = Data Transfer Object(数据传输对象)
- 用于前后端交互,通常比实体类更精简,只包含需要传输的数据。
- 例如:
java
public class UserDTO {
private String username;
private String email;
private List<String> roles;
// getter setter ...
}
3️⃣ AjaxResult / R 类
-
封装接口响应数据,统一返回格式。
-
包含:
code(状态码)msg(消息)data(返回数据)
-
方便前端统一处理响应。
java
public class AjaxResult {
private int code;
private String msg;
private Object data;
// 静态方法构建成功或失败响应
}
4️⃣ LoginUser 类
-
封装当前登录用户信息,例如:
- 用户ID、用户名、角色列表、权限列表等
-
用于后端安全框架(如 Spring Security)中获取用户信息。
java
public class LoginUser {
private Long userId;
private String username;
private List<String> roles;
private List<String> permissions;
}
5️⃣ 总结
domain 文件夹就是 核心数据对象层,作用是:
- 封装数据库实体(Entity)
- 封装前后端交互的数据(DTO)
- 封装统一返回格式(AjaxResult、R)
- 封装用户会话信息(LoginUser)
通俗理解:
controller用domain里的类来收发数据。
我可以帮你画一张 controller ↔ domain ↔ service ↔ mapper 数据流图 ,直观展示 domain 的作用。
你希望我画吗?