若依(RuoYi)是基于 Spring Boot 的权限管理系统,也是国内 Java 低代码领域极具代表性的开源框架。其名称取自'若你'谐音,核心设计理念是'为你定制'。
技术架构全景
整体采用经典的前后端分离模式,技术栈相对成熟稳定:
- 前端层:Vue2 + Element UI + Axios
- 网关层:Spring Cloud Gateway(微服务版本)
- 应用层:Spring Boot + Spring Security + MyBatis
- 数据层:MySQL + Redis + Druid 连接池
- 工具层:代码生成器 + 监控中心 + 定时任务
核心特长分析
1. 完备的权限管理体系
若依在 RBAC(基于角色的访问控制)模型上做得比较扎实,实现了从菜单到按钮再到数据的闭环。
比如权限注解的使用,只需在 Controller 方法上添加 @PreAuthorize 即可轻松控制接口访问:
// 权限注解使用示例
@RestController
public class SysUserController {
@PreAuthorize("@ss.hasPermi('system:user:list')")
@GetMapping("/list")
public TableDataInfo list(SysUser user) {
startPage();
List<SysUser> list = userService.selectUserList(user);
return getDataTable(list);
}
@PreAuthorize("@ss.hasRole('admin')")
@PostMapping("/resetPwd")
public AjaxResult resetPwd(@RequestBody SysUser user) {
return toAjax(userService.resetPwd(user));
}
}
权限控制特色:
- 菜单权限:动态渲染,仅显示当前角色可用的菜单。
- 按钮权限:前后端双重验证,防止越权操作。
- 数据权限:支持按部门隔离数据,可自定义数据范围。
- 操作日志:完整记录用户行为,便于审计。
2. 高度模块化的系统设计
系统采用三层架构并进行了深度优化,特别是数据权限的实现非常巧妙。
// 典型的分层结构示例
@Service
public class {
SysUserMapper userMapper;
SysRoleService roleService;
List<SysUser> {
userMapper.selectUserList(user);
}
}
DataScope {
String ;
String ;
}


