
若依框架:基础应用详解
前言
本教程源自 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采用了前后端分离的单体架构设计:
- 软件环境
- JDK
- MySql
- Redis
- Maven
- Node
- 技术选型
- Spring Boot
- Spring Security
- MyBatis
- Jwt
- Vue3
- Element-Plus
- 官网地址
- 扩展地址
后端项目搭建
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:
- 连接数据库
- 运行sql
- 配置
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.Git克隆并初始化项目
参考:Git克隆并初始化项目
注意:地址为前端项目地址:https://gitee.com/ys-gitee/RuoYi-Vue3.git
2.安装依赖
3.运行
webstorm可以参考:webstorm适配启动Vue项目
pnpm run dev # npm run dev
浏览器访问:http://localhost
入门案例
利用若依代码生成器,生成课程管理的前后端代码
- 准备SQL并导入数据库
- 配置代码生成信息
可以点击编辑按钮对代码生成进行调整
修改作者:
修改字段信息:
生成信息(一定要改)
- 注:上级菜单建议也要选择,不然有时候无法自动选择菜单
最后记得提交!!
- 下载代码并导入项目
动画版(编辑操作略和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 | 用户和角色关联表 |
案例:课程管理
创建新用户小智并关联课研人员角色,仅限课程管理和统计分析菜单访问。
步骤如下:
- 创建菜单
- 创建角色,并分配权限
- 创建用户,并关联角色
实际操作
- 创建菜单
刷新页面后:
如果需要创建二级菜单,可以勾选如下:
- 将课程管理移到主目录
- 添加角色
- 添加用户
- 退出登录,登录小智账号
字典管理
若依内置的数据字典,用于维护系统中常见的静态数据。例如:性别、状态…
- 功能包括:字典类型管理、字典数据管理
表关系如下:
表名 | 说明 |
---|---|
sys_dict_type | 字典类型表 |
sys_dict_data | 字典数据表 |
案例:将课程管理的学科字段改为数据字典维护
- 添加字典类型和数据
剩下两个一样的填写方法:
- 修改代码生成信息
- 下载代码,导入前端
这次添加课程就会显示:
其他功能
- 参数设置:对系统中的参数进行动态维护
- 案例:关闭验证码功能
- 案例:关闭验证码功能
- 通知公告:促进组织内部信息传递
- 后期二次开发,可以通知到其他平台(如邮箱)
- 后期二次开发,可以通知到其他平台(如邮箱)
- 日志管理:轻松追踪用户行为和系统运行状况
系统监控
- 若依提供了一些列强大的监控工具,能够帮助开发者和运维快速了解应用程序的性能状态。
定时任务
可以可视化、动态的管理Spring Task
案例:定时输出时间
@Component
public class MyTask {
public void showTime() {
System.out.println("定时任务开始执行:" + new Date());
}
}
结果:
关于执行策略:
- 立即执行
- 执行一次
- 放弃执行
系统工具
表单构建
- 表单构建工具,只需要开发者通过图形界面和拖拽等操作,可以快速构建复杂的表单。
案例:制作添加课程的表单页面
- 制作表单并导出
可以参考视频:https://picgo.cn-sy1.rains3.com/20240901_153529.mp4
- 复制到前端工程
- 创建动态菜单
代码生成
代码生成器,根据数据库表结构自动生成前后端CRUD代码。
提供三种生成模板:单表、树表、主子表(一对多)
- 单表
如前面的案例说演示:1.基础应用
- 树表
- 主子表
系统接口
- 就是Swagger,能够自动生成 API 的同步在线文档,并提供Web界面进行接口调用和测试。
项目结构
模块依赖关系
二次开发
若依框架修改器
- 若依框架修改器是一个可以一键修改RuoYi框架包名、项目名等的工具。
- 地址:https://gitee.com/lpf_project/RuoYi-MT/releases
可以直接运用在已有项目
新建业务模块
- 新建子模块
- 父工程版本锁定
- sky-admin添加依赖
案例:利用若依代码生成器(主子表模板),生成菜品管理的前后端代码
- 准备SQL并导入数据库
- 配置代码生成信息
- 先导入:
- 编辑
菜品管理
- 子表只需要修改基本信息
- 先导入:
- 下载代码并导入项目
- 升级改造
- 感谢你赐予我前进的力量