首页
/ RuoYi-Cloud-Plus 微服务通用权限管理系统技术文档

RuoYi-Cloud-Plus 微服务通用权限管理系统技术文档

2026-02-04 04:38:58作者:郁楠烈Hubert

1. 安装指南

1.1 环境要求

  • JDK 17 或 21
  • Spring Boot 3.4
  • Redis 5-7
  • MySQL/Oracle/PostgreSQL/SQLServer 等关系型数据库
  • Nacos 服务注册与配置中心
  • 可选:Alibaba Sentinel、Seata、SnailJob 等分布式组件

1.2 基础环境准备

  1. 安装并配置JDK环境变量
  2. 部署Redis服务并确保网络可达
  3. 安装数据库服务并创建空数据库
  4. 部署Nacos服务(建议1.4.x以上版本)

2. 项目安装方式

2.1 源码安装

  1. 克隆项目仓库:
    git clone https://gitee.com/dromara/RuoYi-Cloud-Plus.git
    
  2. 使用IDEA导入Maven项目
  3. 修改各模块配置文件:
    • application.yml 中配置数据库连接
    • bootstrap.yml 中配置Nacos地址
  4. 按顺序启动服务:
    • 认证服务(auth)
    • 系统服务(system)
    • 网关服务(gateway)

2.2 Docker部署

  1. 构建Docker镜像:
    mvn clean package docker:build
    
  2. 使用docker-compose编排服务
  3. 配置环境变量替换本地配置

3. 项目使用说明

3.1 系统初始化

  1. 访问网关服务地址(默认8080端口)
  2. 使用默认管理员账号登录:
    • 用户名:admin
    • 密码:admin123
  3. 进入系统管理界面初始化基础数据

3.2 核心功能模块

  • 权限管理:基于Sa-Token的RBAC权限体系
  • 数据权限:支持部门/角色维度的数据过滤
  • 系统监控:集成Spring Boot Admin
  • 代码生成:可视化生成前后端代码
  • 分布式事务:Seata集成示例

4. 项目API使用文档

4.1 认证接口

// 登录示例
@PostMapping("/login")
public R<LoginUser> login(@RequestBody LoginBody loginBody) {
    // 实现逻辑
}

// 权限校验注解示例
@SaCheckPermission("system:user:list")
@GetMapping("/list")
public R<PageResult<UserVO>> list(UserQuery query) {
    // 实现逻辑
}

4.2 Mybatis-Plus扩展

// 数据权限使用示例
@DataScope(deptAlias = "d", userAlias = "u")
public List<User> selectUserList(User user) {
    return userMapper.selectUserList(user);
}

// 多数据源切换示例
@DS("slave")
public List<User> selectSlaveUserList() {
    return userMapper.selectList(null);
}

4.3 缓存注解

// 带过期时间的缓存
@Cacheable(key = "#id", expire = 60)
public User getById(Long id) {
    return userMapper.selectById(id);
}

// 缓存删除
@CacheEvict(key = "#id")
public void updateUser(User user) {
    userMapper.updateById(user);
}

4.4 分布式调用

// Dubbo服务提供方
@DubboService
public class UserServiceImpl implements UserService {
    public User getById(Long id) {
        return userMapper.selectById(id);
    }
}

// Dubbo服务消费方
@DubboReference
private UserService userService;

5. 高级特性

5.1 数据脱敏

// 实体类注解示例
public class User {
    @DataSensitive(strategy = SensitiveStrategy.PHONE)
    private String phone;
}

5.2 数据翻译

// 字典翻译示例
public class UserVO {
    @Dict(dictType = "sys_user_sex")
    private String sex;
}

5.3 分布式限流

// Sentinel资源定义
@SentinelResource(value = "userList", blockHandler = "handleBlock")
public List<User> list() {
    // 业务逻辑
}

本技术文档提供了RuoYi-Cloud-Plus核心功能的快速入门指南,更多详细配置请参考项目文档和代码示例。系统采用模块化设计,各功能组件可独立使用或替换,建议开发者根据实际需求进行定制化开发。

登录后查看全文
热门项目推荐
相关项目推荐