当前位置: 首页 > news >正文

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

文章目录

  • 一、开发脚手架选择
  • 二、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.DruidDataSourcedriverClassName: com.mysql.cj.jdbc.Driverdruid:# 主库数据源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)若能正确展示登录页面,并能成功登录,菜单及页面展示正常,则表明环境搭建成功。

在这里插入图片描述


相关文章:

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

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

Java 后端接口入参 - 联合前端VUE 使用AES完成入参出参加密解密

加密效果&#xff1a; 解密后的数据就是正常数据&#xff1a; 后端&#xff1a;使用的是spring-cloud框架&#xff0c;在gateway模块进行操作 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30…...

HarmonyOS开发之使用PhotoViewPicker(图库选择器)保存图片

一&#xff1a;效果图 二&#xff1a;添加依赖 import fs from ohos.file.fs;//文件管理 import picker from ohos.file.picker//选择器 三&#xff1a;下载&#xff0c;保存图片的实现 // 下载图片imgUrldownloadAndSaveImage(imgUrl: string) {http.createHttp().request(…...

跨境独立站支付收款常见问题排雷篇1.0丨出海笔记

最近小伙伴们在社群讨论挺多关于独立站支付问题的&#xff0c;鉴于不少朋友刚接触独立站&#xff0c;我整理了一些独立站支付相关的问题和解决方案&#xff0c;供大家参考&#xff0c;百度网上一堆媒体的那些软文大家就别看了&#xff0c;都是软广或者抄来抄去&#xff0c;让大…...

uni-app实现web-view和App之间的相互通信

双向实时 如果app端部署成网站&#xff0c;则web-view就是iframe&#xff0c;使用也可以双向通讯 https://uniapp.dcloud.net.cn/component/web-view.html APP端代码 index.vue: <template><web-viewid"m-webview":fullscreen"true":src"…...

HTB-Vaccine(suid提权、sqlmap、john2zip)

前言 各位师傅大家好&#xff0c;我是qmx_07&#xff0c;今天来为大家讲解Vaccine靶机 渗透过程 信息搜集 服务器开放了 21FTP服务、22SSH服务、80HTTP服务 通过匿名登录FTP服务器 通过匿名登录到服务器&#xff0c;发现backup.zip文件&#xff0c;可能存在账号密码 发现b…...

【达梦数据库】异构数据库迁移到达梦

目录 1、迁移准备2、正式迁移3、问题处理3.1、return附近出现错误3.1.1、排查过程3.1.2、问题原因3.1.2、解决方法 3.2、对象[XXX]处于无效状态-类型13.2.1、排查过程3.2.2、问题原因3.2.3、解决方法 3.3、对象[XXX]处于无效状态-类型23.3.1、排查过程3.3.2、问题原因3.3.3、解…...

抽象类和接口(1)

抽象类&#xff1a; 什么是抽象类&#xff1a; 听着就很抽象&#xff0c;确实挺抽象&#xff0c;先来写一个抽象类感觉一下&#xff1a; 这就是抽象类&#xff01; 在 Java 中&#xff0c;一个类如果被 abstract 修饰称为抽象类&#xff0c;抽象类中被 abstract 修饰的方法…...

epoll内核原理与实现详解

目录 1 epoll相关理论基础 1.1 I/O多路复用技术 1.2 事件驱动模型 1.2.1 基本概念 1.2.2 优缺点分析 1.2.3 与epoll的关联 1.3 epoll机制简介 1.3.1 核心原理 1.3.2 优点 2 epoll内核原理 2.1 epoll数据结构 2.1.1 主要数据结构 2.1.2 数据结构关系 2.2 epoll工作…...

被低估的SQL

SQL是现代数据库管理系统中不可或缺的一部分。尽管它的使用已十分普遍&#xff0c;但在数据处理领域&#xff0c;SQL的某些功能和潜力仍然被许多人低估。接下来&#xff0c;小编将与您一起&#xff0c;探讨SQL的一些被忽视的特性&#xff0c;揭示它在数据管理中的真正实力。 1.…...

数字证书、数字签名及其关系

一.数字证书与数字签名 1.数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。简单地说&#xff0c;数字证书是一段包含用户身份信息、用户公钥信息以及份验证机构数字签名的数据。 通俗理解&#xff1a;数字证书相当于【身份证】 —— 确认你…...

一文读懂:如何将广告融入大型语言模型(LLM)输出

本文是我翻译过来的&#xff0c;讨论了在线广告行业的现状以及如何将大型语言模型&#xff08;LLM&#xff09;应用于在线广告。 原文请参见”阅读原文“。 在2024年&#xff0c;预计全球媒体广告支出的69%将流向数字广告市场。这个数字预计到2029年将增长到79%。在Meta的2024…...

godotenv拜读

简介 应用提倡将配置存储在环境变量中。任何从开发环境切换到生产环境时需要修改的东西都从代码抽取到环境变量里。 但是在实际开发中&#xff0c;如果同一台机器运行多个项目&#xff0c;设置环境变量容易冲突&#xff0c;不实用。godotenv库从.env文件中读取配置&#xff0c;…...

解析REST API与OpenAPI之差异:避免混淆

在网络API领域&#xff0c;常提及的两种术语为Rest API与Open API&#xff0c;其既存在差异亦存在联系。前者是一种API设计方式&#xff0c;后者则是一种API描述及定义规范。值得注意的是&#xff0c;OpenAPI 可用于描述和定义REST API。 什么是REST API&#xff1f; REST API …...

一篇文章就搞懂了:过虑器 、拦截器 、监听器是什么

java 过虑器 、拦截器 、监听器的区别? ‌实现原理‌&#xff1a; 过滤器基于函数回调实现。拦截器基于Java的反射机制实现。监听器用于监听特定事件的发生&#xff0c;并作出相应处理。 ‌使用范围‌&#xff1a; 过滤器依赖于Tomcat等容器&#xff0c;主要用于Web程序。拦截…...

本体映射与本体集成

文章目录 本体映射与本体集成本体映射分类知识挖掘是从己有的实体及实体关系出发挖掘新的知识,具体包括知识内容挖掘和知识结构挖掘。 本体映射与本体集成 解决本体异构的通用方法是本体集成与本体映射。本体集成直接将多个本体合并为一个大本体,本体映射则寻找本体间的映射…...

华媒舍:10种提升推特大V发文推广曝光率的方式

在社交媒体时代&#xff0c;推特已成为许多大V达到更广泛受众的重要渠道。并非所有的推文都能获得理想的曝光率。为了帮助大V们提升推文的曝光率&#xff0c;本文将介绍10种有效的方式。 1. 精心构思内容 好的内容是吸引读者和提升曝光率的关键。大V们应该从听众的角度出发&am…...

前端本地存储数据:深入解析与代码示例(Cookie、LocalStorage、SessionStorage和IndexedDB)

在现代Web应用中&#xff0c;前端本地存储是实现用户个性化体验的关键技术。本文将深入探讨前端本地存储的四种主要技术&#xff1a;Cookie、LocalStorage、SessionStorage和IndexedDB&#xff0c;并提供具体的代码示例。 Cookie 简介 Cookie是由服务器创建并存储在用户浏览…...

Java语言程序设计基础篇_编程练习题*18.21 (将十进制数转换为二进制数)

*18.21 (将十进制数转换为二进制数) 编写一个递归方法&#xff0c;将一个十进制数转换为一个二进制数的字符串。方法头如下: public static String dec2Bin(int value)编写一个测试程序&#xff0c;提示用户输入一个十进制数&#xff0c;然后显示等价的二进制数。 代码示例 …...

中年转行新可能:18 个月迈向大模型提示词工程师

【导读】 人到中年&#xff0c;想半路转行成为大模型提示词工程师&#xff0c;这可行吗&#xff1f;最近&#xff0c;一位国外小哥成功转行&#xff0c;他在一篇干货满满的硬核博客中给出了答案&#xff1a;完全可行&#xff01; 转行成为大模型提示词工程师&#xff0c;到底…...

C++通过返回值和输出参数的原理是什么?分别有什么优势和缺点?

C中&#xff0c;通过返回值和输出参数&#xff08;通常是通过引用或指针&#xff09;是函数与外部世界交换数据的两种主要方式。它们各自有着不同的原理和优缺点。 通过返回值 原理&#xff1a; 当函数通过返回值向调用者传递数据时&#xff0c;它实际上是在函数执行完毕后&…...

AI客服机器人开启企业客户服务新纪元

随着人工智能(AI)技术的迅猛发展&#xff0c;使得AI客服机器人走进了我们的视野&#xff0c;成为提高客户满意度和业务效率的不二法宝。这些智能机器人不仅能够处理海量信息&#xff0c;还能为客户提供个性化的服务体验。 一、AI客服机器人的基本原理 AI客服机器人是基于人工智…...

TPM项目课题的确定需要考虑哪些因素?

确定一个合适的TPM项目课题&#xff0c;是企业启动并成功实施TPM计划的第一步。这一过程不仅需要深入洞察企业现状&#xff0c;还需前瞻性地规划未来发展。详情如深圳天行健精益化生产管理咨询公司下文所述&#xff1a; 一、企业战略目标 1.与企业长期发展规划的契合度 -TPM项…...

Rust 数据类型

文章目录 发现宝藏1. 标量类型1.1 整型1.2 浮点型1.3 布尔型1.4 字符型 2. 复合类型2.1 元组2.2 数组 3. 总结 发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【宝藏入口】。 Rust 是一种静态…...

C#无标题栏窗体拖动

要实现C#无标题栏窗体的拖动功能&#xff0c;可以通过以下步骤实现&#xff1a; 在窗体的构造函数中添加以下代码&#xff0c;以去掉标题栏&#xff1a; this.FormBorderStyle FormBorderStyle.None;然后&#xff0c;添加以下代码以处理鼠标按下事件&#xff1a; private c…...

MySQL容器配置连接数数,镜像重启生效

若有不理解&#xff0c;可以问一下这几个免费的AI网站 https://ai-to.cn/chathttp://m6z.cn/6arKdNhttp://m6z.cn/6b1quhhttp://m6z.cn/6wVAQGhttp://m6z.cn/63vlPw 方法一 在 docker-compose.yml 中配置 MySQL 的连接数&#xff0c;可以通过环境变量或配置文件来实现。以下…...

《OpenCV计算机视觉》—— 身份证号码识别案例

文章目录 一、案例实现的整体思路二、代码实现1.首先定义两个函数2.模板图像中数字的定位处理3.身份证号码数字的定位处理4.使用模板匹配&#xff0c;计算匹配得分&#xff0c;找到正确结果 一、案例实现的整体思路 下面是一个数字0~9的模板图片 案例身份证如下&#xff1a; 对…...

如何使用正则表达式替换字符串中的特定位置数字

如何使用正则表达式替换字符串中的特定位置数字 1、效果 把字符串中的第一个123替换掉: 2、代码 使用正则中的sub函数: re.sub(pattern,repl,string,count=0,flags=0) pattern:表示需要匹配的模式,即需要被替换的字符或字符串。 repl:表示替换后的字符串或函数,用于…...

【SQL】在SQL中,行转列

在SQL中&#xff0c;行转列通常是指将数据从水平方向&#xff08;行&#xff09;转换为垂直方向&#xff08;列&#xff09;&#xff0c;这可以通过使用CASE语句或数据库特有的函数如PIVOT&#xff08;在SQL Server中&#xff09;来实现。下面我将通过一个具体的例子来说明如何…...

95. UE5 GAS RPG 实现创建多段飞弹攻击敌人

从这篇开始&#xff0c;我们将实现一些技能&#xff0c;比如多段火球术&#xff0c;闪电链等等。 在这一篇里&#xff0c;我们先实现多段火球术&#xff0c;技能可以通过配置发射出多个火球术进行攻击。 创建多段火球函数 首先在我们之前创建的RPGFireBolt.h类里面增加一个生…...