1. 若依框架技术栈解析
RuoYi-Vue-SpringBoot3作为当前企业级开发的热门选择,其技术栈组合体现了现代Java开发的典型架构。后端采用Spring Boot 3.x作为基础框架,这是Spring家族中首个全面支持Java 17+的版本,在性能优化和内存管理上有显著提升。与Spring Boot 2.x相比,3.x版本移除了大量过时API,对GraalVM原生镜像的支持也更加完善。
前端方面,Vue 3.x的Composition API提供了更好的逻辑复用能力,配合TypeScript类型系统,使得大型前端项目的维护成本大幅降低。值得注意的是,若依框架采用了Element Plus作为UI组件库,这是专为Vue 3设计的版本,在表单处理和表格展示方面有显著性能提升。
2. 环境准备与依赖安装
2.1 JDK配置要点
SpringBoot3要求JDK17+环境,推荐使用Amazon Corretto 17或OpenJDK 17。安装后需确认环境变量配置:
# 检查Java版本 java -version # 应显示类似:openjdk version "17.0.3" 2022-04-192.2 数据库初始化
MySQL 8.0是推荐版本,创建数据库时需注意字符集设置:
CREATE DATABASE `ruoyi` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;若依的SQL初始化脚本包含表结构和基础数据,执行时需注意:
mysql -uroot -p ruoyi < /path/to/ry_2023xxxx.sql2.3 前端工具链
Node.js建议使用16.x LTS版本,安装后需配置淘宝镜像:
npm config set registry https://registry.npmmirror.com3. 后端项目配置详解
3.1 配置文件关键参数
application.yml中需要特别关注的配置项:
# 数据源配置(生产环境建议使用Druid连接池) spring: datasource: url: jdbc:mysql://localhost:3306/ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: 123456 # Redis配置(哨兵模式示例) spring: redis: sentinel: master: mymaster nodes: 127.0.0.1:26379,127.0.0.1:26380 password: 123456 database: 03.2 启动类定制
主启动类需要添加注解扫描路径:
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) @MapperScan("com.ruoyi.**.mapper") public class RuoYiApplication { public static void main(String[] args) { SpringApplication.run(RuoYiApplication.class, args); } }4. 前端项目构建实战
4.1 依赖安装优化
使用pnpm可以显著提升安装速度:
npm install -g pnpm pnpm install --shamefully-hoist4.2 环境变量配置
.env.production生产环境配置示例:
# 接口地址 VUE_APP_BASE_API = '/prod-api' # 是否启用mock VUE_APP_USE_MOCK = false4.3 构建性能优化
在vite.config.js中添加以下配置:
build: { chunkSizeWarningLimit: 2000, rollupOptions: { output: { manualChunks(id) { if (id.includes('node_modules')) { return id.toString().split('node_modules/')[1].split('/')[0] } } } } }5. 部署流程与排错指南
5.1 后端部署
推荐使用Docker Compose部署方案:
version: '3' services: ruoyi-app: image: openjdk:17-jdk ports: - "8080:8080" volumes: - ./ruoyi.jar:/app.jar command: java -jar /app.jar environment: - SPRING_PROFILES_ACTIVE=prod5.2 前端部署
Nginx配置示例(支持history路由模式):
server { listen 80; server_name yourdomain.com; location / { root /usr/share/nginx/html; index index.html; try_files $uri $uri/ /index.html; } location /prod-api/ { proxy_pass http://backend:8080/; proxy_set_header Host $host; } }5.3 常见问题排查
启动报错:数据库连接失败
- 检查MySQL用户权限:
GRANT ALL PRIVILEGES ON ruoyi.* TO 'root'@'%' - 确认防火墙规则:
sudo ufw allow 3306
- 检查MySQL用户权限:
前端空白页问题
- 检查路由base配置:
src/router/index.js中的base参数 - 确认静态资源路径:
publicPath需与部署路径匹配
- 检查路由base配置:
Redis连接超时
- 检查protected-mode设置:
protected-mode no - 确认bind配置:
bind 0.0.0.0
- 检查protected-mode设置:
6. 生产环境优化建议
- JVM参数调优
java -Xms512m -Xmx1024m -XX:+UseG1GC -jar ruoyi.jar- 前端静态资源CDN加速修改
vite.config.js:
base: 'https://cdn.yourdomain.com/',- API接口缓存策略在Controller添加缓存注解:
@Cacheable(value = "userCache", key = "#userId") @GetMapping("/users/{userId}") public AjaxResult getUser(@PathVariable Long userId) { //... }- 日志切割配置Logback配置示例:
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/ruoyi.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>logs/ruoyi.%d{yyyy-MM-dd}.%i.log</fileNamePattern> <maxFileSize>50MB</maxFileSize> <maxHistory>30</maxHistory> </rollingPolicy> </appender>