1. 环境准备与框架下载
第一次接触若依框架时,我被它"开箱即用"的特性惊艳到了。这个基于SpringBoot+Vue的前后端分离框架,简直就是中小型企业项目的快速启动神器。不过在实际操作中,我发现环境配置环节有几个容易踩的坑,这里分享下我的实战经验。
后端环境需要准备JDK1.8(注意不要用更高版本,会有兼容性问题)、MySQL5.7+、Redis5+和Maven3.6+。前端则需要Node.js 14+版本。特别提醒:Redis安装后一定要设置密码,我在测试环境就遇到过因为没设密码被挖矿程序入侵的情况。
下载源码时建议直接从官网(http://www.ruoyi.vip/)获取最新稳定版。有个小技巧:用Git克隆比下载zip包更稳妥,因为后期更新可以直接pull。我遇到过zip包解压后.gitignore文件丢失的情况,导致IDE生成了大量缓存文件。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 项目结构与命名规范改造
拿到标准框架后,第一件事就是"去若依化"改造。这个环节看似简单,实则暗藏玄机。我建议按照这个顺序操作:
-
先分离前后端项目:把ruoyi-ui目录整个移出作为独立前端项目,剩下的作为后端项目。记得在移动后立即commit,方便回滚。
-
修改项目名称时,别直接在IDE里重命名。正确做法是先修改pom.xml中的
和 ,再用IDE的Refactor功能同步修改目录结构。我曾经因为顺序搞反导致Maven依赖解析失败。 -
替换"ruoyi"关键字时要注意:
- 先用IDEA的"Replace in Path"功能(Ctrl+Shift+R)
- 勾选"Match Case"区分大小写
- 分三次替换:全小写、首字母大写、全大写
- 最后检查yml/properties文件中的配置项
有个容易遗漏的点是前端vue.config.js里的代理配置,这里的target要改成你后端的新服务名。我曾在联调阶段被这个坑耽误了两小时。
3. 数据库与缓存配置实战
配置数据库时,建议新建专属用户而不是直接用root。在application-druid.yml中:
yaml复制datasource:
url: jdbc:mysql://localhost:3306/your_db?useSSL=false
username: your_user
password: your_pwd
initialSize: 5
maxActive: 20
连接池参数要根据服务器配置调整,4核8G的机器我一般设maxActive=50。记得在MySQL中执行ry_2023xxxx.sql初始化脚本前,先创建好数据库。
Redis配置在application.yml中,生产环境一定要配密码:
yaml复制redis:
host: 127.0.0.1
port: 6379
password: your_redis_pwd
timeout: 3000
如果启用哨兵模式,配置方式略有不同,需要指定sentinel节点和master名称。
4. 前后端协同启动技巧
后端启动很简单,直接运行RuoYiApplication即可。但有个细节:建议先执行mvn clean install把依赖装好。我遇到过同事本地仓库不完整导致类找不到的情况。
前端启动前确保node_modules完整:
bash复制# 建议先清理缓存
npm cache clean --force
# 然后安装依赖
npm install --registry=https://registry.npm.taobao.org
# 最后启动
npm run dev
如果启动时报错,试试删除node_modules重新安装。我在Windows和Mac上都遇到过依赖冲突的问题。
启动成功后,访问http://localhost:80应该能看到登录页。这里有个优化点:可以在vue.config.js里修改devServer的port,避免与常见服务端口冲突。
5. MyBatis-Plus深度集成
若依默认使用MyBatis,但在复杂业务场景下,MyBatis-Plus的Lambda查询能大幅提升效率。集成步骤:
- 在pom.xml添加依赖:
xml复制<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3</version>
</dependency>
- 修改MyBatisConfig.java关键行:
java复制// 原版
SqlSessionFactory sessionFactory = sqlSessionFactoryBean.getObject();
// 改为
MybatisSqlSessionFactoryBean sessionFactory = new MybatisSqlSessionFactoryBean();
- 在application.yml添加MP配置:
yaml复制mybatis-plus:
mapper-locations: classpath*:mapper/**/*.xml
type-aliases-package: com.yourpackage.**.domain
configuration:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
集成后最大的优势是可以混用MP和原生MyBatis。比如复杂SQL仍用XML写,简单CRUD用MP的Wrapper。我在用户管理模块就采用这种混合模式,开发效率提升40%以上。
6. 企业级项目规范落地
在真实企业环境中,还需要考虑以下改造:
- 日志规范:在logback-spring.xml中配置按天归档
- 接口文档:集成Knife4j替代原生Swagger
- 权限扩展:在SysPermission中增加数据权限注解
- 异常处理:统一封装业务异常码
建议新建一个base模块存放这些公共组件。我现在的项目结构是这样的:
code复制your-project
├── your-admin # 后台服务
├── your-common # 通用组件
├── your-generator # 代码生成
└── your-ui # 前端项目
7. 常见问题排查指南
在实际部署中,这几个问题出现频率最高:
- 前端403错误:检查后端CorsConfig配置,特别是allowedOrigins
- 登录后跳转404:确认前端.env.production的VUE_APP_BASE_API
- Redis连接超时:检查防火墙设置,云服务器要配置安全组
- 菜单图标不显示:确保svg文件放在正确目录,权限设置755
遇到奇怪的问题时,先看后端日志(默认在logs/下),再看浏览器控制台报错,最后检查网络请求。这个方法帮我解决了90%的部署问题。
