Ruoyi 快速开发平台

news2024/12/23 20:34:08

Ruoyi 快速开发平台

  • 一、官网
  • 二、准备工作
    • 2.1 环境要求
    • 2.2 必要配置
  • 三、运行系统
    • 3.1 后端运行
    • 3.2 前端安装及运行
  • 四、自定义开发
    • 4.1 新增业务模块
    • 4.2 代码生成
      • 4.2.1 创建菜单
      • 4.2.2 后端代码
      • 4.2.3 前端代码


1

一、官网

  链接: 前后端分离版本

1
回到目录

二、准备工作

2.1 环境要求

1

2.2 必要配置

  1. 源码下载:
      前往Gitee下载页面( https://gitee.com/y_project/RuoYi-Vue (opens new window))下载解压到工作目录
  2. 开发环境:idea(2023以上版本)、maven(3.0以上版本)、jdk(1.8版本)
  3. 导入:将源码导入idea
  4. 创建数据库ry-vue(库名可自定义)并导入数据脚本:ry_2021xxxx.sql,quartz.sql
  5. 修改数据库连接,编辑resources目录下的application-druid.yml
# 数据源配置
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        druid:
            # 主库数据源
            master:
                url: 数据库地址
                username: 数据库账号
                password: 数据库密码

  这里根据需要可以配置多个数据源,master和slave用于将业务数据库和系统数据库分开。

示例如下:
2
6. 修改服务器配置,编辑resources目录下的application.yml

# 开发环境配置
server:
  # 服务器的HTTP端口,默认为80
  port: 端口
  servlet:
    # 应用的访问路径
    context-path: /应用路径

示例如下:
3

回到目录

三、运行系统

提示:
  因为本项目是前后端完全分离的,所以需要前后端都单独启动好,才能进行访问。前端安装完node后,最好设置下淘宝的镜像源,不建议使用cnpm(可能会出现奇怪的问题)

3.1 后端运行

启动后端项目,通过debug启动,配置参数:RuoYiApplication.java
3
点击运行,初次运行可能报错,需要重新加载一下maven信息:
4
出现如下图表示启动成功:
5
回到目录

3.2 前端安装及运行

  1. 前端项目第一次运行需要安装依赖包,执行命令:npm install

强烈建议不要用直接使用 cnpm 安装,会有各种诡异的 bug,可以通过重新指定 registry 来解决 npm 安装速度慢的问题。

npm install --registry=https://registry.npmmirror.com

5

  1. 前端项目本地运行命令:npm run dev
    6

  2. 运行成功后,登录网页,默认用户名\密码:admin\admin123
    7

具体运行命令看package.json中scripts属性,详细如下:
  scripts配置是在一个基于Vue.js项目的package.json文件中定义的,它使用npm或yarn作为包管理工具来执行各种命令。每个命令都对应一个开发或部署过程中的不同任务。下面是对这些命令的简要说明:

  • dev
    命令: “vue-cli-service serve”
    说明: 这个命令用于启动开发服务器。它会监听源代码的更改,并自动重新加载页面以反映这些更改。这是开发过程中最常用的命令之一,因为它提供了一个实时的开发环境。
  • build:prod
    命令: “vue-cli-service build”
    说明: 这个命令用于构建生产环境的项目。它会将Vue组件、JavaScript、CSS等文件打包成一个或多个文件,通常包括一个或多个.js文件、.css文件,以及一个或多个资源文件(如图片、字体等)。这些文件被优化以减少加载时间,并准备好部署到生产服务器上。
  • build:stage
    命令: “vue-cli-service build --mode staging”
    说明: 类似于build:prod,但这个命令通过–mode staging参数指定了一个不同的环境模式(在这个例子中是“staging”或“测试环境”)。这允许你根据不同的环境(如开发、测试、生产)来定制构建过程,比如通过环境变量来启用或禁用某些功能或特性。
  • preview
    命令: “node build/index.js --preview”
    说明: 这个命令看起来是项目特定的,不是Vue CLI直接提供的。它可能是一个自定义脚本,用于在本地或远程服务器上预览构建后的项目。通过–preview参数,这个脚本可能执行了一些特定的预览设置或操作。
  • lint
    命令: “eslint --ext .js,.vue src”
    说明: 这个命令使用ESLint来检查src目录下的.js和.vue文件的代码质量。ESLint是一个静态代码分析工具,用于识别JavaScript代码中的模式,并帮助你按照预定的编码标准

回到目录

四、自定义开发

4.1 新增业务模块

  1. 新建模块
    1
  2. pom.xml文件中添加模块
    2
    回到目录

4.2 代码生成

  1. 建表,在mysql slave(从库-业务库)数据库中创建表
  2. 在页面上选择 系统工具->代码生成 -> 导入
    2
  3. 选择 创建的表 ,进行导入
    3
  4. 选择 刚刚导入的表,点击“生成代码”,下载待本地

4
5. 解压缩下载的zip文件

其中:

  • main是后端java代码
  • vue是前端代码
  • xx.sql是创建菜单的sql语句

回到目录

4.2.1 创建菜单

  1. 打开xxxMenu.sql文件
    1
  2. 在mysql的主数据库中执行sql语句
    1
    执行完后,在数据库的sys_menu中将看到刚刚新增的菜单,如果有自定义菜单,也可以在这边按照规定格式新增或编辑修改。
    1
    对于系统对字段赋值有特殊要求的,参考其他菜单进行赋值,如:
    3> 这里的模块名称(perms)也可以根据实际情况进行修改,但是更改后,代码中要与更改的内容保持一致。

回到目录

4.2.2 后端代码

  1. 将后端代码,根据目录提示,放入对应的文件夹中,如果没有该文件夹则手动创建,包含如下domain\mapper\service
    1
  • 对于domain/xxx.java,进去导入关联包,并删除get/set函数,在文件头新增如下注解,适应springboot编程:
@AllArgsConstructor
@NoArgsConstructor
@Data

1

  • 对于/service/impl/xxImpl.java,需要在文件头增加注解,指定数据源。
@DataSource(DataSourceType.SLAVE)

2

  • 对于其他文件,可根据实际情况,调整文件内容。
  1. 对于目录下的controller文件,需要放置到xx-admin/src/main/com.xx/web/controller/模块名称 下面

注意:如果4.2.1节创建菜单时修改了模块名称(perms),这边controller文件中的RequestMapping也要同步进行修改.

1
回到目录

4.2.3 前端代码

  1. 将下载的文件夹vue/api/模块名/xx.js文件复制到前端代码:src/api/模块名下面

注意:如果4.2.1节创建菜单时修改了模块名称(perms),这边js文件中的所有的url也要同步进行修改.
3

  1. 将下载的文件夹vue/views/模块名/xx.vue文件复制到前端代码:src/views/模块名/菜单名/下面
    4

这是前端页面,可更改这里的代码对前端进行页面的优化

回到目录

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

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

相关文章

UDP服务器端bind失败问题

本人使用microchip芯片开发,使用UDP虚拟机通讯,经常提示bind失败,返回-1,尝试了以前UDP作为客户端使用时正常,故硬件链路没问题。 一、可能有几个原因: 端口实际上被占用:最明显的原因是端口真…

基于入侵野草算法的KNN分类优化matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 入侵野草算法 4.2 K近邻分类器(KNN) 4.3 基于IWO的KNN分类优化 5.完整程序 1.程序功能描述 基于入侵野草算法的KNN分类优化。其中,入侵野草算法是一…

GEE APP:利用谷歌地球引擎实现更有效的草原管理:决策支持应用视角

简介 草原占地球表面和农田的很大一部分,对人类福祉和畜牧业至关重要。由于牧区基础设施不发达、通信不畅,牧民和草原管理部门在有效控制牧民放牧行为和草原利用方面面临挑战。要解决这一问题,促进草原的可持续利用并保护其生态系统服务,就需要基于云的放牧管理和决策支持…

C++初阶大总结

目录 一.命名空间 1.命名空间定义 2.命名空间使用 二.C++输入&输出 三.缺省参数 四. 函数重载 五.引用 1.常引用 2.传值、传引用效率比较 3.引用和指针的区别 4.引用和指针的不同点: 小知识点: 六.内联函数 七.auto关键字(C++11) 1.auto的使用细则 八.基于…

24暑假算法刷题 | Day23 | LeetCode 39. 组合总和,40. 组合总和 II,131. 分割回文串

目录 39. 组合总和题目描述题解 40. 组合总和 II题目描述题解 131. 分割回文串题目描述题解 39. 组合总和 点此跳转题目链接 题目描述 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有…

Dolphinscheduler 3.2.1bug记录

问题1:分页只展示首页 解决方案: [Bug][API] list paging missing totalpage by Gallardot Pull Request #15619 apache/dolphinscheduler GitHub 问题2:Hive 数据源连接失败 解决方案:修改源码:HiveDataSourceProcessor.cla…

A Survey on Multimodal Large Language Models(from gpt-4o)

目录 A Survey on Multimodal Large Language Models1. INTRODUCTION2. ARCHITECTURE2.1 Modality encoder2.2 Pre-trained LLM2.3 Modality interface 3. TRAINING STRATEGY AND DATA3.1 Pre-training3.1.1 Training Detail3.1.2 Data 3.2 Instruction-tuning3.2.1 Introducti…

Linux下文件编译器-GCC/G++

前言 本文介绍了c/c的编译过程以及gcc/g的时使用 一.c/c翻译的本质:将高级语言翻译成二进制 1)程序翻译过程: (1)预处理(头文件展开、宏替换、去注释、条件编译)还是C语言代码 ​ …

hash表如何形成,hash函数如何计算,什么是hash冲突 如何解决 ,Golang map的底层原理及扩容机制

散列表 散列表(hash表):根据给定的关键字来计算出关键字在表中的地址的数据结构。也就是说,散列表建立了关键字和 存储地址之间的一种直接映射关系。 问题:如何建立映射管血 散列函数:一个把查找表中的关键字映射成该关键字对应…

平移、旋转、缩放和媒体

一、平移 1.1translate()函数 做转换工作可以用translate()函数,这个函数可以改变坐标系。通过改变默认的坐标系,我们可以创建不同的转换方式,包括平移、旋转和缩放。 1.2平移位置案例 案例代码如图1 图1 保存运行如…

【大一公共课】C语言+python语言入门对比+思维导图

C 和 Python 入门教程对比 一、引言 C 语言和 Python 语言都是在编程领域中广泛使用的语言,但它们在语法、应用场景和学习难度上有很大的不同。本教程将对 C 和 Python 的入门知识进行对比,帮助您更好地理解和选择适合自己的编程语言。 二、C 语言入门 …

python爬取某财富网

过程: 点击底部的第3页,第5页,网页刷新了,但是顶部的url地址没有变。那么就是 动态加载, 就是 XHR. 直接请求api. 实验代码如下: import requestsheaders {"User-Agent": "Mozilla/5.0 (Windows NT…

LLM大模型:2024工业AI大模型发展分析

一、大模型为工业智能化发展带来新机遇 1.1. 大模型开启人工智能应用新时代 大模型引领人工智能技术创新和应用。 自 1956 年达特茅斯会议(Dartmouth Conference)提出人工智能的概念以来,人工智能技术经历了多个发展高峰和低谷。在这一长期的…

《深入浅出WPF》学习笔记一.解析WPF程序

《深入浅出WPF》学习笔记一.解析WPF程序 visual studio帮助我们做了那些事情 引用文件 输出文件类型 按照最原始的方式,我们需要手动打开编译器命令行,使用命令引用类库将代码编译成目标文件。 visual studio会根据我们选择的项目模板,自动…

Java学习Day19:基础篇9

包 final 权限修饰符 代码块 静态代码块在Java中是一个重要的特性,它主要用于类的初始化操作,并且随着类的加载而执行,且只执行一次。静态代码块的实践应用广泛,以下是几个主要的应用场景: 1. 初始化静态变量 静态代…

芋道源码yudao-cloud 二开日记(Editor富文本本地图片上传报错问题)

: 于是找到富文本的组件代码Editor.vue,检查一下上传的接口地址和token有没有传,如下图: 都没有问题,但还是报错,所以试试自定义上传的方法: // 导入上传文件的接口 import * as FileApi from …

数字图像处理 --- 二维离散余弦变换(python实战)

二维离散余弦变换(python实战) (注:文中所讨论的离散余弦变换都是DCT-II) 在上一篇文章中,我详细介绍了一维离散余弦变换的基本原理,并且以可视化的方式展示了一维DCT中用于分析输入信号的一系列基础余弦波。 在这篇文…

【简单图解 最强计网八股】HTTP 和 HTTPS 的区别

HTTP(HyperText Transfer Protocol 超文本传输协议) HTTPS(Hypertext Transfer Protocol Secure,超文本传输安全协议) 通过 传输内容加密 和 身份认证 保证了传输过程的安全性 协议传输内容加密身份认证响应效率端口号…

​LLM大模型从入门到精通(7)--企业大模型开发流程​

一、大模型项目开发的两种方式 2023年以来,随着ChatGPT的火爆,使得LLM成为研究和应用的热点,但是市面上大部分LLM都存在一个共同的问题:模型都是基于过去的经验数据进行训练完成,无法获取最新的知识,以及各…

Axure中继器:数据动态展示的强大工具

在Axure RP这一强大的原型设计工具中,中继器(Repeater)无疑是一颗璀璨的明珠。它以其独特的功能和广泛的应用场景,成为设计师在创建数据密集型原型时的首选。本文将深入探讨Axure中继器的特点、使用方式及其在数据动态展示中的重要…