1. RuoYi框架概述与核心价值
RuoYi是一款基于Spring Boot+Bootstrap的快速开发框架,在国内企业级应用开发领域有着广泛的应用。我第一次接触这个框架是在2018年参与一个ERP系统开发项目时,当时团队选择RuoYi作为基础框架,主要看中它开箱即用的权限管理系统和代码生成器功能。经过这些年的版本迭代,现在的RuoYi已经发展成为一个功能更加完善的开发平台。
这个框架最大的特点就是"快"——通过内置的代码生成器,开发者可以在几分钟内完成基础CRUD功能的开发。我记得有一次客户临时增加了一个物料管理模块的需求,使用RuoYi的代码生成器,从建表到前端页面生成只用了不到半小时就完成了原型开发,这在传统开发模式下至少需要2-3天的工作量。
2. 环境准备与工具选型
2.1 基础环境配置
在开始搭建RuoYi项目前,需要确保开发环境满足以下要求:
- JDK 1.8+(推荐使用OpenJDK 11)
- Maven 3.5+
- MySQL 5.7+(生产环境建议8.0+)
- Redis 5.0+
这里特别说明一下JDK版本的选择问题:虽然RuoYi官方文档说支持JDK1.8,但在实际使用中发现,使用JDK11可以避免一些潜在的兼容性问题。我在三个不同项目中的实测数据显示,JDK11下的启动时间平均比JDK1.8快15%左右。
2.2 开发工具推荐
根据我的项目经验,推荐以下开发工具组合:
- IDEA Ultimate(社区版也可以,但缺少对JPA的完整支持)
- Navicat Premium(数据库管理)
- Redis Desktop Manager(Redis可视化)
- Postman(API测试)
注意:如果使用VSCode开发,需要额外安装Spring Boot插件和Lombok插件,否则会出现编译错误。
3. 项目搭建详细步骤
3.1 源码获取与导入
RuoYi的官方代码仓库在Gitee上,可以通过以下命令克隆最新版本:
bash复制git clone https://gitee.com/y_project/RuoYi.git
导入IDEA时需要注意:
- 选择"Import Project"而不是"Open"
- 在导入向导中选择"Maven"作为项目类型
- 勾选"Search for projects recursively"选项
3.2 数据库初始化
RuoYi需要两个数据库:
- 主业务数据库(默认名称为ry)
- 定时任务数据库(默认名称为ry-quartz)
初始化步骤:
- 使用MySQL客户端创建这两个数据库
- 执行项目sql目录下的ry_2023xxxx.sql(主数据库)
- 执行quartz.sql(定时任务数据库)
常见问题:如果遇到"Unknown collation"错误,需要将SQL文件中的utf8mb4_0900_ai_ci替换为utf8mb4_general_ci
3.3 配置文件修改
关键配置文件位于ruoyi-admin/src/main/resources目录下:
- application.yml - 主配置文件
- 修改datasource配置中的数据库连接信息
- 修改redis配置
- application-druid.yml - 数据源监控配置
- application-dev.yml - 开发环境配置
配置示例:
yaml复制spring:
datasource:
master:
url: jdbc:mysql://localhost:3306/ry?useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: 123456
4. 项目启动与验证
4.1 启动后端服务
在IDEA中:
- 找到RuoYiApplication.java
- 右键选择"Run 'RuoYiApplication'"
- 观察控制台输出,确保没有错误
启动成功后,可以通过以下URL访问:
- 后端API文档:http://localhost:8080/swagger-ui.html
- 数据源监控:http://localhost:8080/druid
4.2 前端项目启动(Vue版本)
如果使用的是RuoYi-Vue版本,还需要启动前端项目:
bash复制cd ruoyi-ui
npm install
npm run dev
前端启动后访问:http://localhost:80
5. 常见问题解决方案
5.1 验证码问题
很多开发者询问如何关闭验证码登录,这可以通过修改以下配置实现:
- 找到application.yml
- 修改配置项:
yaml复制ruoyi:
captcha:
enabled: false
5.2 打包问题
关于不同电脑打包结果不一致的问题,通常是由于以下原因:
- Node.js版本不一致(建议使用14.x LTS版本)
- npm依赖缓存问题(尝试删除node_modules后重新install)
- 系统环境变量差异(特别是JAVA_HOME的设置)
解决方案:
bash复制# 清除缓存并重新安装
rm -rf node_modules
npm cache clean --force
npm install
5.3 WMS系统扩展
虽然RuoYi没有现成的WMS系统,但基于它的代码生成器可以快速开发WMS功能:
- 设计好数据库表结构
- 使用代码生成器生成基础CRUD
- 在生成的代码基础上添加业务逻辑
我在去年就基于RuoYi开发过一个完整的WMS系统,核心功能包括:
- 库存管理
- 入库/出库单处理
- 库存盘点
- 货位管理
6. 项目优化建议
6.1 性能调优
根据我的项目经验,RuoYi在默认配置下可能需要以下优化:
- 调整Tomcat参数(在application.yml中):
yaml复制server:
tomcat:
max-threads: 200
min-spare-threads: 20
- 启用Redis缓存(默认已启用,但需要确认配置正确)
6.2 安全加固
生产环境部署时建议:
- 修改默认管理员账号密码
- 关闭Swagger文档接口
- 配置HTTPS
- 限制Druid监控页面的访问IP
7. 二次开发指南
7.1 代码生成器使用技巧
RuoYi的代码生成器位于"系统工具"->"代码生成"菜单下,使用时注意:
- 表名需要以"sys_"开头才会出现在可选列表中
- 生成代码前需要先在数据库中创建好表结构
- 生成后需要重启应用才能生效
7.2 自定义模块开发
添加新模块的标准流程:
- 在数据库中创建业务表
- 使用代码生成器生成基础代码
- 在ruoyi-admin/src/main/java/com/ruoyi下创建业务包
- 将生成的代码移动到对应包中
- 修改菜单权限配置
8. 生产环境部署
8.1 后端部署
推荐使用Docker部署,以下是Dockerfile示例:
dockerfile复制FROM openjdk:11-jre
COPY target/ruoyi-admin.jar /app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
构建命令:
bash复制mvn clean package
docker build -t ruoyi .
docker run -d -p 8080:8080 --name ruoyi ruoyi
8.2 前端部署
Vue项目打包:
bash复制npm run build:prod
部署到Nginx的配置示例:
nginx复制server {
listen 80;
server_name yourdomain.com;
location / {
root /path/to/ruoyi-ui/dist;
index index.html;
try_files $uri $uri/ /index.html;
}
}
9. 监控与维护
9.1 健康检查
RuoYi内置了Actuator端点,可以通过以下URL访问:
- 健康检查:/actuator/health
- 性能指标:/actuator/metrics
9.2 日志管理
建议配置日志中心化收集:
- 修改logback-spring.xml配置
- 集成ELK或Graylog
- 配置日志级别为WARN(生产环境)
10. 项目升级策略
从旧版本升级时需要注意:
- 备份数据库和配置文件
- 查看官方发布的升级说明
- 逐步测试各功能模块
- 特别注意数据表结构变更
我在升级4.7.5到4.7.6版本时就遇到过菜单表结构变更导致的问题,解决方案是:
- 导出原菜单数据
- 执行升级SQL
- 重新导入菜单数据
- 清除Redis缓存
