1、RuoYi简介
若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。
-
前端采用Vue、Element UI。
-
后端采用Spring Boot、Spring Security、Redis & Jwt。
-
权限认证使用Jwt,支持多终端认证系统。
-
支持加载动态权限菜单,多方式轻松权限控制。
-
高效率开发,使用代码生成器可以一键生成
-
提供了技术栈(一个 Vue 3 UI 框架 | Element Plus)版本RuoYi-Vue3,保持同步更新。
-
提供了单应用版本yangzongzhuan/RuoYi-Vue-fast: :tada: (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,Oracle版本yangzongzhuan/RuoYi-Vue-Oracle: :tada: (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,保持同步更新。
-
若依官网:http://ruoyi.vip(opens new window)
-
演示地址:若依管理系统
-
代码下载
2、RuoYi内置功能
-
用户管理:用户是系统操作者,该功能主要完成系统用户配置。
-
部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
-
岗位管理:配置系统用户所属担任职务。
-
菜单管理:配置系统菜单,操作权限,按钮权限标识等。
-
角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
-
字典管理:对系统中经常使用的一些较为固定的数据进行维护。
-
参数管理:对系统动态配置常用参数。
-
通知公告:系统通知公告信息发布维护。
-
操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
-
登录日志:系统登录日志记录查询包含登录异常。
-
在线用户:当前系统中活跃用户状态监控。
-
定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
-
代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。
-
系统接口:根据业务代码自动生成相关的api接口文档。
-
服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
-
缓存监控:对系统的缓存信息查询,命令统计等。
-
在线构建器:拖动表单元素生成相应的HTML代码。
-
连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
3、系统基础配置
3.1 系统需求
-
JDK >= 1.8
-
MySQL >= 5.7
-
Maven >= 3.0
3.2 系统版本
4、运行项目
代码下载:
vue2:https://gitee.com/y_project/RuoYi-Vue
vue3:https://github.com/yangzongzhuan/RuoYi-Vue3
后端代码相同,前端有vue2和vue3
4.1 修改配置
修改文件地址
修改redis地址
修改数据库信息
4.2 创建数据库
虚拟机启动redis后运行项目
前端打开ruoyi-ui文件夹
用命令下载依赖后,运行项目
npm install
npm run dev
运行效果
登录之后
5、创建系统
5.1 创建菜单
刷新页面后,左边菜单栏已经拥有我们创建的菜单了。
5.2 创建管理页面
在自己的若依数据库中创建自己的表
在若依前端选择自己要操作的表
5.3 生成代码
按照自己的需求编辑前后端生成的代码格式
表的基本信息
表的字段信息,主要编辑的地方是表的增删改查是否要包含这些字段,以及查询的方式。
表生成信息,上级菜单要特别注意
生成相关代码
5.4 系统部署
打开下载的文件夹可以发现相关的代码已经生成
sql文件是系统的注册信息,放入数据库执行,或者复制其中的sql语句放入查询中执行
main中的文件放入系统中
前端
5.5 重启系统
重启系统,登录后就有相关的界面了。
插入数据
编辑信息
查询信息
总结
ruoyi框架优秀的性能表现、多种组件的支持、强大的代码生成器以及丰富的代码示例使得它成为了一个优秀的轻量级开源快速开发框架,完全可以满足一些需求不高的开发。
若依框架的优缺点
优点:
1、高度集成的开发框架,支持快速开发和部署。
2、代码简单清晰明了,易于维护。
3、提供了自定义组件等功能,可满足各种需求。
4、采用前后端分离的设计思路,使应用更加灵活,易于扩展。
缺点:
1、使用ruoyi框架需要一定的JavaWeb开发经验,在没有JavaWeb基础的情况下,上手可能会困难。
2、提供的代码生成器可能不能满足需求,并且代码生成的质量还需要另加一定的开发工作,丧失了一些必要的代码灵活性。
3、支持的功能还比较简单,但是这也使得它更加轻量级,本身具有局限性。