前言


本教程源自 https://www.bilibili.com/video/BV1pf421B71v/

什么是若依


  • 若依(RuoYi)是一款基于JavaEE技术的企业级快速开发平台
  • 让Java开发者用少量代码,就能快速搭建和开发出各种管理系统工具

若依搭建


若依为满足多样化的开发需求,提供了多种各具特色的框架版本:

  • RuoYi(SpringBoot+Bootstrap)
  • RuoYi-Vue(SpringBoot+Vue)
  • RuoYi-Cloud(SpringCloud+Vue)
  • RuoYi-App(Uniapp+Vue)
  • RuoYi-other(Vue3+ElementPlus+Vite)

RuoYi-Vue

RuoYi-Vue采用了前后端分离的单体架构设计:

后端项目搭建

1.Git克隆并初始化项目

动画版:

2.MySQL导入与配置

创建数据库:

CREATE USER'ruoyi'@'%' IDENTIFIED WITH mysql_native_password BY '***';GRANT USAGE ON *.* TO 'ruoyi'@'%';ALTER USER 'ruoyi'@'%' REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CREATE DATABASE IF NOT EXISTS `ruoyi`;GRANT ALL PRIVILEGES ON `ruoyi`.* TO 'ruoyi'@'%'

导入sql:

  1. 连接数据库
  2. 运行sql
  3. 配置 application-druid.yml

根据自身信息修改如下:

# 数据源配置
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        druid:
            # 主库数据源
            master:
                url: jdbc:mysql://localhost:3306/ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                username: ruoyi
                password: RS$34qWiTf3@
3.启动Redis

若redis有设置密码的需要添加密码配置:

  1. 运行后端项目

前端项目搭建

1.Git克隆并初始化项目

参考:Git克隆并初始化项目

注意:地址为前端项目地址:https://gitee.com/ys-gitee/RuoYi-Vue3.git

2.安装依赖

3.运行

webstorm可以参考:webstorm适配启动Vue项目

pnpm run dev # npm run dev

浏览器访问:http://localhost

入门案例


利用若依代码生成器,生成课程管理的前后端代码

  1. 准备SQL并导入数据库

下载sql

  1. 配置代码生成信息

可以点击编辑按钮对代码生成进行调整

修改作者:

修改字段信息:


生成信息(一定要改)

  • 注:上级菜单建议也要选择,不然有时候无法自动选择菜单

最后记得提交!!

  1. 下载代码并导入项目

动画版(编辑操作略和SQL导入略):


一定要执行SQL文件!

最终效果:

前面步骤搞错了或想修改解决方法

删除所有数据表,重新导入

  • 如果已经导入了错误的业务,可以删除对应业务

修改的话,直接覆盖之前的业务代码即可

功能详解


若依的菜单有很多,分别有不同的功能,如下:

系统管理

权限控制

若依内置了强大的 RBAC 权限控制系统,为企业级项目提供了通用的解决方案。

  • RBAC(基于角色的访问控制)是一种广泛使用的访问控制模型,通过角色来分配和管理用户的菜单权限。

正常的权限控制:

  • 同一权限每个人员都要重新赋值

RBAC:

  • 每个角色有不同的权限,每个人员都可以是对应的角色
  • 同时不同人员也可以是不同角色

表关系如下:

表名说明
sys_dept部门表
sys_post岗(职)位信息表
sys_menu菜单权限表
sys_role角色信息表
sys_role_dept角色和部门关联表
sys_role_menu角色和菜单关联表
sys_user用户信息表
sys_user_post用户与岗位关联表
sys_user_role用户和角色关联表

案例:课程管理

创建新用户小智并关联课研人员角色,仅限课程管理和统计分析菜单访问。

步骤如下:

  1. 创建菜单

  1. 创建角色,并分配权限

  1. 创建用户,并关联角色

实际操作
  1. 创建菜单


刷新页面后:

如果需要创建二级菜单,可以勾选如下:

  1. 将课程管理移到主目录

  1. 添加角色

  1. 添加用户

  1. 退出登录,登录小智账号

字典管理

若依内置的数据字典,用于维护系统中常见的静态数据。例如:性别、状态…

  • 功能包括:字典类型管理、字典数据管理

表关系如下:

表名说明
sys_dict_type字典类型表
sys_dict_data字典数据表


案例:将课程管理的学科字段改为数据字典维护
  1. 添加字典类型和数据

剩下两个一样的填写方法:

  1. 修改代码生成信息

  1. 下载代码,导入前端

这次添加课程就会显示:

其他功能

  • 参数设置:对系统中的参数进行动态维护
    • 案例:关闭验证码功能
  • 通知公告:促进组织内部信息传递
    • 后期二次开发,可以通知到其他平台(如邮箱)
  • 日志管理:轻松追踪用户行为和系统运行状况

系统监控

  • 若依提供了一些列强大的监控工具,能够帮助开发者和运维快速了解应用程序的性能状态。

定时任务

可以可视化、动态的管理Spring Task

案例:定时输出时间

@Component  
public class MyTask {  
    public void showTime() {  
        System.out.println("定时任务开始执行:" + new Date());  
    }  
}




结果:

关于执行策略:

  • 立即执行
  • 执行一次
  • 放弃执行

系统工具

表单构建

  • 表单构建工具,只需要开发者通过图形界面和拖拽等操作,可以快速构建复杂的表单。

案例:制作添加课程的表单页面
  1. 制作表单并导出

可以参考视频:https://picgo.cn-sy1.rains3.com/20240901_153529.mp4

  1. 复制到前端工程

  1. 创建动态菜单

代码生成

代码生成器,根据数据库表结构自动生成前后端CRUD代码。
提供三种生成模板:单表、树表、主子表(一对多)

  • 单表

如前面的案例说演示:1.基础应用

  • 树表

  • 主子表

系统接口

  • 就是Swagger,能够自动生成 API 的同步在线文档,并提供Web界面进行接口调用和测试。

项目结构


模块依赖关系

二次开发


若依框架修改器

可以直接运用在已有项目

新建业务模块

  1. 新建子模块

  1. 父工程版本锁定

  1. sky-admin添加依赖

案例:利用若依代码生成器(主子表模板),生成菜品管理的前后端代码

  1. 准备SQL并导入数据库

下载sql

  1. 配置代码生成信息
    • 先导入:
    • 编辑 菜品管理
    • 子表只需要修改基本信息
  2. 下载代码并导入项目
  3. 升级改造