若依RuoYi项目环境搭建教程(RuoYi-Vue + RuoYi-Vue3版本)

news2024/9/25 17:10:58

文章目录

  • 一、开发脚手架选择
  • 二、RuoYi框架
    • 1、介绍
    • 2、版本发展
    • 3、为什么选择若依
    • 4、优缺点
    • 5、项目内置功能
  • 三、后端项目部署
    • 1、拉取源码
    • 2、环境要求
    • 3、Maven构建
    • 4、MySQL相关
      • (1)导入SQL脚本
      • (2)配置信息
    • 5、Redis相关
      • (1)启动Redis
      • (2)配置信息
    • 6、项目运行
  • 四、前端项目部署
    • 1、初始化项目
    • 2、项目运行


一、开发脚手架选择

当下热门流行的5个开源的Java项目快速开发脚手架。

  1. Guns
  2. pig
  3. RuoYi
  4. Jeecg-boot
  5. iBase4J

本次主要介绍Java热门快速开发脚手架——若依(RuoYi),包括若依介绍、环境搭建教程。


二、RuoYi框架

1、介绍

若依(Ruoyi)框架是一款基于 Spring Boot 2.5.5、Spring Cloud 2020.0、OAuth2 与 JWT 鉴权等核心技术,同时也支持Spring Security、Apache Shiro 等多种安全框架,以及 Mybatis、JPA 等流行持久化框架,提供了许多常用的功能模块,包括系统管理、监控管理、任务调度、代码生成、文件上传、高德地图等功能的快速开发平台。

若依官网:http://ruoyi.vip
演示地址:http://vue.ruoyi.vip
前后端分离版本代码下载:https://gitee.com/y_project/RuoYi-Vue
官方开发手册:https://doc.ruoyi.vip/ruoyi/


2、版本发展

从2018年一直开源维护到今天:

  • 前后端混合版本 RuoYi(SpringBoot+Bootstrap):RuoYi结合了SpringBoot和Bootstrap的前端开发框架,适合快速构建传统的Web应用程序,其中前端和后端代码在同一项目中协同工作。https://gitee.com/y_project/RuoYi
  • 前后端分离版本 RuoYi-Vue(SpringBoot+Vue):RuoYi-Vue利用SpringBoot作为后端开发框架,与Vue.js结合,实现了前后端分离的开发模式。这种架构有助于提高开发效率,前后端可以独立开发和部署,更适合现代化的Web应用开发。https://gitee.com/y_project/RuoYi-Vue、https://gitee.com/ys-gitee/RuoYi-Vue3
  • 微服务版本 RuoYi-Cloud(SpringCloud+Vue):RuoYi-Cloud基于Spring Cloud & Alibaba微服务架构,为构建大型分布式系统提供了完整的解决方案。它支持服务发现、配置管理、负载均衡等微服务特性,适合需要高可扩展性和高可用性的企业级应用。https://gitee.com/y_project/RuoYi-Cloud
  • 移动端版本 RuoYi-App(Uniapp+Vue):RuoYi-App采用Uniapp进行开发,结合了Vue.js的优势,可以实现跨平台的移动端应用开发。一次编写,多端运行的能力使得它成为开发iOS和Android应用的理想选择。https://gitee.com/y_project/RuoYi-App
  • 芋道源码 ruoyi-vue-pro:RuoYi-Vue 全新 Pro 版本,优化重构所有功能。https://gitee.com/zhijiantianya/ruoyi-vue-pro

3、为什么选择若依

  • 框架使用人群与热度分析:用户基数大,全网火爆,具有代表性,很多中小型公司脚手架的首选。
  • gitee:

  • github:

  • 完全开源,免费商用,不光是代码,文档也是开源的。有些项目是代码开源,文档收费,虽然不贵,但免费的显然更香。
  • 商用友好,MIT许可,想怎么改就怎么改,想怎么发版就怎么发版,完全不用担心侵权。
  • 开源开发文档:中文支持友好,照着文档把项目跑起来并使用功能,上手相对容易。
  • 社区活跃度:有一定的社区支持,虽然不如一些大型开源项目那样活跃,但对于解决常见问题和获取技术支持还是有帮助的。更新速度和频率也比较高。

4、优缺点

  • 优点

(1)高效率开发:引入如代码生成等多种能力,可自动生成初代代码,只需关注业务逻辑实现。

(2)低代码/封装:只提供必要的封装以保持框架的简洁性,可灵活配置。

(3)前后端分离:前后端领域无关,简化开发,提高效率,通过屏蔽前后端技术栈,让前后端工程师更关注自己的业务以及交互效果。

(5)支持多种安全框架:OAuth2、JWT、Spring Security、Apache Shiro 都可以选择。

(6)权限认证使用Jwt,支持多终端认证系统。支持加载动态权限菜单,多方式轻松权限控制。

(6)支持多种持久化框架:Mybatis、JPA都可以选择。

(7)集成多种常用模块:系统管理、监控管理、任务调度、代码生成、文件上传、高德地图等功能的快速开发平台。

  • 缺点

(1)使用RuoYi框架需要一定的JavaWeb开发经验,在没有JavaWeb基础的情况下,上手可能会困难。

(2)提供的代码生成器可能不能满足需求,并且代码生成的质量还需要另加一定的开发工作。

(3)支持的功能还比较简单,但是这也使得它更加轻量级,通用性更好。

(4)适合初学者,它满足一些没有技术积累的小型开发团队或者软件公司的快速开发的需求,这一点是值得肯定的,也是它在国内流行的主要原因。

5、项目内置功能

(1)用户管理:用户是系统操作者,该功能主要完成系统用户配置。

(2)部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。

(3)岗位管理:配置系统用户所属担任职务。

(4)菜单管理:配置系统菜单,操作权限,按钮权限标识等。

(5)角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。

(6)字典管理:对系统中经常使用的一些较为固定的数据进行维护。

(7)参数管理:对系统动态配置常用参数。

(8)通知公告:系统通知公告信息发布维护。

(9)操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。

(10)登录日志:系统登录日志记录查询包含登录异常。

(11)在线用户:当前系统中活跃用户状态监控。

(12)定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。

(13)代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。

(14)系统接口:根据业务代码自动生成相关的api接口文档。

(15)服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。

(16)缓存监控:对系统的缓存信息查询,命令统计等。

(17)在线构建器:拖动表单元素生成相应的HTML代码。

(18)连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。


三、后端项目部署

1、拉取源码

  • 若依版本选择:RuoYi-Vue + RuoYi-Vue3
  • RuoYi-Vue版本,采用了前后端分离的单体架构设计。
  • 软件环境:JDK、MySQL、Redis、Maven、Node
  • 技术选型:Spring Boot、Spring Security、MyBatis、Jwt、Vue3、Element-Plus
# 项目后端
git clone https://gitee.com/y_project/RuoYi-Vue.git
# 项目前端
git clone https://gitee.com/ys-gitee/RuoYi-Vue3.git

2、环境要求

官方推荐演示版本
JDK >= 1.8JDK 17
MySQL >= 5.7.0MySQL 8.0
Redis >= 3.0Redis 3.2 (Win)
Maven >=3.0Maven 3.6.1
Node >= 12Node 16(Vue3)

3、Maven构建

使用idea打开项目后,等待环境检查(主要是Maven下载项目依赖)
在这里插入图片描述

4、MySQL相关

(1)导入SQL脚本

  • 创建数据库create schema ry-vue;
  • 执行下图的sql脚本文件,完成导入。

在这里插入图片描述

  • 导入后ry-vue库内置30张表

在这里插入图片描述

(2)配置信息

ruoyi-admin模块下,编辑resources目录下的application-druid.yml,修改数据库连接。

# 数据源配置
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        druid:
            # 主库数据源
            master:
                url: 数据库地址
                username: 数据库账号
                password: 数据库密码

5、Redis相关

(1)启动Redis

在redis解压目录下,执行redis-server.exe redis.windows.conf启动。

(2)配置信息

ruoyi-admin模块下,resources目录下的application.yml,可以设置redis密码等相关信息。

在这里插入图片描述

6、项目运行

ruoyi-admin模块下,运行com.ruoyi.RuoYiApplication.java,出现如下图表示启动成功。

在这里插入图片描述

后端运行成功可以通过([http://localhost:8080)访问,但是不会出现静态页面,可以继续参考下面步骤部署ruoyi-ui前端,然后通过前端地址来访问。


四、前端项目部署

1、初始化项目

进入开发目录下,使用vscode命令code打开项目。

# 克隆Vue3项目(之前已经拉取过了不用执行)
git clone https://gitee.com/ys-gitee/RuoYi-Vue3.git

# 通过vscode打开项目(在RuoYi-Vue3目录里直接输入code也可以)
code ./RuoYi-Vue3

2、项目运行

在vscode终端中输入以下命令:

# 安装依赖
npm install

# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
npm install --registry=https://registry.npmmirror.com

# 启动服务
npm run dev

打开浏览器,输入:([http://localhost:80) 默认账户/密码 admin/admin123)若能正确展示登录页面,并能成功登录,菜单及页面展示正常,则表明环境搭建成功。

在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2126087.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

crdownload格式后缀的文件是什么东西?crdownload格式是什么

crdownload格式就是浏览器没下载完成的文件,如果下载完成了,那么就显示正常的格式和文件名了。

ARM32开发——DMA

🎬 秋野酱:《个人主页》 🔥 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 基础概念CPURAM外设 ARM32程序存储 执行过程取数据 执行操作流程总结 基础概念 CPU CPU(Central Processing Unit&am…

[点云处理] cloud compare二次插件功能开发(三)CC插件总结与加速开发

本文完成一个点云变换的插件,同时也是对CC接口的使用做进一步说明,进一步理解CC插件开发流程,利用CC平台和已有代码加快实现定制功能。 这个功能在 cc 已有的功能已经存在,位于 edit->apply_transformation 这里 文件逻辑组织还…

如何让人工智能训练更快

影响人工智能训练时间的因素 在深度学习训练中,训练时间的计算涉及到多个因素,包括 epoch 数、全局 batch size、微 batch size、计算设备数量等。下面是一个基本的公式来说明这些参数之间的关系(注意,这只是一个基本的说明公式&…

改变事件

窗口的某些属性的状态发生改变时就会触发该事件 对应的事件类型包括 QEvent::ToolBarChange, QEvent::ActivationChange, QEvent::EnabledChange, QEvent::FontChange,QEvent::StyleChange, QEvent::PaletteChange, QEvent::WindowTitleChange, QEvent::IconTextChange, QEve…

【大模型基础】P2 Bag-of-Words

目录 词袋模型 概述词袋模型 实例第1步 构建语料库第2步 对句子进行分词第3步 创建词汇表第4步 转换词袋表示第5步 计算余弦相似度 词袋模型的局限性 词袋模型 概述 词袋模型,Bag-of-Words,是一种简单的文本表示方法,也是 NLP 中的一个经典模…

【Arcgis基础教程】GIS数据制备,空间分析与高级建模实践应用

随着信息技术的发展,数字地球、智慧地球等新概念的出现,人们对信息的需求日益提高,使得地理信息系统(GIS)在国民经济各个行业中获得了日益广泛的应用。尤其在当今大数据时代,面对海量的空间数据及个性化的地理信息服务,如何高效地…

Outlook如何归档?

文章目录 一. 目的二. 问题详述三. 解决办法1、打开ouutlook文件2、设置存档文件夹3、设置存档文件夹4、选中邮箱点击确定5、如果备份失败的操作方法 四. 注意事项 一. 目的 解决OUTLOOK邮箱爆满造成无法接收邮件的问题…

猫头虎分享:看完百度内部讲话,整理出李彦宏关于大模型的10个判断

🦁 猫头虎分享:看完百度内部讲话,整理出李彦宏关于大模型的10个判断 📢 大家好!我是猫头虎技术团队的首席写作官。今天为大家带来一篇重量级内容:从百度内部讲话中,整理了李彦宏对大模型的10大…

LIO-SAM如何保存地图

一、找到LIO-SAM配置文件,路径为config/params.yaml,修改以下两项参数: savePCD: true # https://github.com/TixiaoShan/LIO-SAM/issues/3savePCDDirectory: "/home/slam/catkin_ws/src/maps" …

通讯录 - 动态内存开辟版本

文章目录 前言 一、思想 二、contact.h 三、test.c 四、contact.c 1、初始化通讯录 2、判断容量 3、增加联系人 4、封装的查找的函数 5、删除联系人 6、查找联系人 7、修改联系人 八、展示通讯录 九、排序 十、释放空间 总结 前言 路漫漫其修远兮,吾将上下而求索&…

盘点2024年4款高质量的英语翻译工具

英语目前对我们来说仍然是一门很重要的语言,在日常生活中,如果我们需要频繁的接触到英语的话,除了要积极提升自己的英语翻译能力之外,借助一些高效的英语翻译工具也是很有必要的。所以今天就跟大家分享一些我觉得比较好用的翻译工…

Kotlin 特性之扩展函数

什么是扩展函数 扩展函数是 Java 不具备的,而 Kotlin 独有的特性,在日常开发中使用频率很高,类似于设计模式中的装饰模式,其作用就是在不改变原有类的情况下,扩展新的功能。 如何使用扩展函数和扩展属性 扩展函数的…

通信工程学习:什么是ASK振幅键控、FSK频移键控、PSK相移键控

ASK振幅键控、FSK频移键控、PSK相移键控 ASK(振幅键控)、FSK(频移键控)和PSK(相移键控)是三种常见的数字调制技术,它们各自通过不同的方式改变载波的某个参数来传输数字信息。以下是对这三种调制…

微软 Power Apps MDA 模型驱动应用解决Image字段查询出来缩略图问题变原图方法(c#+Plugin方式)

微软 Power Apps MDA 模型驱动应用解决Image字段查询出来缩略图问题变原图方法(c#Plugin方式) 在某些特定的场景中,需要将Image字段中的图片取出来,一般来说直接查询这个字段可以直接取,取出来的就是一个Base64格式的图…

【linux-Day2】linux下的基本指令

【linux-Day2】linux下的基本指令 一键查看操作系统的重要地位linux下的基本指令📢ls:显示当前目录下所有的子目录和文件📢pwd:显示用户当前所在的目录,在windows中,相当于显示当前目录的绝对路径。&#x…

推理与训练,分布式训练

什么是推理training 在人工智能领域,推理是指经过训练的机器学习模型从全新的数据(输入)中得出结论(输出)的过程。通俗地讲,推理是模型的实际运行。 什么是训练 inference 在人工智能领域,训…

Linux内核初始化过程中加载TCP/IP协议栈

Linux内核初始化过程中加载TCP/IP协议栈 Linux内核初始化过程中加载TCP/IP协议栈,从start_kernel、kernel_init、do_initcalls、inet_init,找出Linux内核初始化TCP/IP的入口位置,即为inet_init函数。 Linux内核启动过程 之前的实验中我们设…

差值图中像素总和的正负性(极性)含义

1. 正总和的含义 当 I1 减去 I2 的差值图总和为正时,这意味着整体上 I1 的像素值比 I2 高。即: 表示: 2. 局部亮度变化 即便差值图的总和为正,也不能确保 I1 在所有区域都比 I2 亮。差值图的正总和只是表明在整个图像中&#xf…

webpack5 创建多页面应用配置

简单版webpack创建多页面应用,只要把配置文件复制下来,然后npm安装相应插件,正常是能跑起来了 创建 初始化 npm init生成package.json文件安装webpack npm i -D webpack webpack-cli webpack-dev-server创建main.js入口文件和webpack.config…