1、起步
1.1、准备工作:
JDK >= 1.8 (推荐1.8版本)
Mysql >= 5.5.0 (推荐5.7版本)
Redis >= 3.0
Maven >= 3.0
Node >= 10
1.2、下载若依:
使用git克隆(命令为:git clone https://gitee.com/y_project/RuoYi-Vue.git)或者前往Gitee下载页面(https://gitee.com/y_project/RuoYi-Vuei)下载解压到工作目录。
1.3、后端运行(先启动后端再启动前端)
- 导入maven项目并选择maven的版本和setting.xml路径
- 创建数据库ry-vue并导入数据脚本ry_20191008.sql,quartz.sql
- 打开运行
com.ruoyi.RuoYiApplication.java
能发送请求到后端并返回数据则表示已经成功启动
ps:如果没有redis请安装redis,不然项目启动失败。
1.4、前端运行
# 进入项目目录
cd ruoyi-ui
# 安装依赖
npm install
# 强烈建议不要用直接使用 cnpm 安装,会有各种诡异的 bug,可以通过重新指定 registry 来解决 npm 安装速度慢的问题。
npm install --registry=https://registry.npm.taobao.org
# 本地开发 启动项目
npm run dev
出现该界面表示前端已启动成功
ps:如果没有安装node请先安装node
1.5、修改数据库连接
编辑resources目录下的application.yml,修改数据库的服务器地址以及账号密码。
1.6、部署系统
该项目是前后端分离项目,所有需要前后端都部署好,才能进行访问。
后端部署
使用命令行执行:java –jar ruoyi.jar
前端部署
# 打包正式环境
npm run build:prod
# 打包预发布环境
npm run build:stage
构建打包成功之后,会在根目录生成 dist
文件夹,里面就是构建打包好的文件,通常是 ***.js
、***.css
、index.html
等静态文件。通常情况下 dist
文件夹的静态文件发布到你的 nginx 或者静态服务器即可,其中的 index.html
是后台服务的入口页面。
2、构建功能模块
2.1、右击项目名字>> new >> module >> maven >> next >> ruoyi-zavier(模块名称) >> finsh
ps:ruoyi-zavier是我自定义的模块名称,用于接下来的演示。
2.2、在新建的功能模块下的pom.xml引入通用工具(ruoyi-common)依赖
<dependencies>
<!-- 通用工具-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common</artifactId>
</dependency>
</dependencies>
2.3、在父项目的pom.xml引入新建功能模块的依赖
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-zavier</artifactId>
<version>${ruoyi.version}</version>
</dependency>
2.4、在ruoyi-admin模块的pom.xml引入新建功能模块的依赖
<!-- 创建自定义功能模块 -->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-zavier</artifactId>
</dependency>
3、自动生成代码
3.1、执行脚本
drop table if exists sys_student;
create table sys_student (
student_id int(11) auto_increment comment '编号',
student_name varchar(30) default '' comment '学生名称',
student_age int(3) default null comment '年龄',
student_hobby varchar(30) default '' comment '爱好(0代码 1音乐 2电影)',
student_sex char(1) default '0' comment '性别(0男 1女 2未知)',
student_status char(1) default '0' comment '状态(0正常 1停用)',
student_birthday datetime comment '生日',
primary key (student_id)
) engine=innodb auto_increment=1 comment = '学生信息表';
3.2、在该界面创建目录和菜单并把请求地址填上
3.3、在系统中导入要代码生成的表
3.4、修改ruoyi-generator模块下的generator.yml配置
3.5、修改生成配置信息
3.5、下载生成后的代码并把内容复制到创建的功能模块下相应的文件中
3.5.1、把studentMenu.sql执行,该sql是生成相应的菜单和按钮
3.5.2、把下载文件中controller中的类复制到ruoyi-admin模块下的controller包下子包中,并把自定义功能模块下的controller包删除
3.5.3、把下载文件中vue文件夹对应的文件复制到项目中ruoyi-ui模块对应的文件夹中。
3.6、重启项目(前后端都要重启),出现下图界面即成功,便可在该界面做相应的操作,后端也自动生成了常用功能的代码
4、总结
经过几天的学习若依前后端分离框架,发表一下对这个框架的了解,便于后者参考。
- 前后端分离,提高开发效率
- 支持完全响应式布局
- 从前端到后端,代码全部自动生成
- 对后端常用的功能进行封装,简单配置或者调用即可使用
- 支持权限控制
- 对常用js插件进行二次封装,使js代码变得简洁,更加易维护
- Maven多项目依赖,模块及插件分项目,尽量松耦合,方便模块升级、增减模块。