配置环境,以及了解一下平台的操作
一、若依框架概述
Q1: 若依框架是什么?有哪些版本选择?
若依(RuoYi)是一个基于Spring Boot的权限管理系统,提供了丰富的功能模块和灵活的架构设计。主要版本包括:
-
前后端混合版本:传统Web应用,适合快速开发
-
前后端分离版本(RuoYi-Vue):SpringBoot + Vue.js,现代化开发首选
-
微服务版本(RuoYi-Cloud):基于Spring Cloud的大型分布式系统
-
移动端版本(RuoYi-App):Uniapp跨平台开发
技术栈推荐:RuoYi-Vue + Vue3 + Element Plus
二、环境搭建指南
Q2: 如何快速搭建若依开发环境?
环境要求:
-
JDK 11、MySQL 8、Redis 5、Maven 3.6、Node 16
后端搭建步骤:
bash
# 1. 克隆项目
git clone https://gitee.com/y_project/RuoYi-Vue.git
# 2. 创建数据库并导入SQL
create schema ry-vue;
# 执行 sql/ry_2024xxxx.sql
# 3. 修改数据库配置
# ruoyi-admin/resources/application-druid.yml
spring:
datasource:
druid:
master:
url: jdbc:mysql://localhost:3306/ry-vue
username: root
password: 123456
# 4. 配置Redis
# application.yml
redis:
host: localhost
port: 6379
password: 123456
前端搭建步骤:
bash
# 1. 克隆Vue3版本 git clone https://gitee.com/ys-gitee/RuoYi-Vue3.git # 2. 安装依赖 npm install --registry=https://registry.npmmirror.com # 3. 启动项目 npm run dev
三、代码生成器实战
Q3: 如何使用代码生成器快速开发业务模块?
以课程管理为例:
-
准备数据表:
sql
CREATE TABLE `course` ( `id` bigint NOT NULL AUTO_INCREMENT, `code` varchar(50) DEFAULT NULL COMMENT '课程编码', `subject` varchar(50) DEFAULT NULL COMMENT '课程学科', `name` varchar(100) DEFAULT NULL COMMENT '课程名称', `price` decimal(10,2) DEFAULT NULL COMMENT '价格', PRIMARY KEY (`id`) );
-
系统导入:
-
登录系统 → 系统工具 → 代码生成 → 导入课程表
-
-
配置生成信息:
-
设置字段描述、Java类型、查询方式、显示类型等
-
-
生成代码:
-
点击生成按钮,下载ruoyi.zip
-
包含后端代码、前端代码、菜单SQL
-
-
导入代码:
-
执行菜单SQL
-
后端代码复制到ruoyi-admin模块
-
前端代码复制到ruoyi-ui模块
-
四、核心功能详解
Q4: 若依的权限系统是如何工作的?
RBAC模型:
-
用户 → 角色 → 权限(菜单权限)
-
核心表:sys_user、sys_role、sys_menu、sys_user_role
权限控制流程:
-
用户登录获取token
-
访问接口时通过@PreAuthorize注解校验权限
-
前端通过v-hasPermi指令控制按钮显示
创建用户权限示例:
java
// 后端权限控制
@PreAuthorize("@ss.hasPermi('course:course:list')")
@GetMapping("/list")
public TableDataInfo list(Course course) {
// ...
}
vue
<!-- 前端权限控制 --> <el-button v-hasPermi="['course:course:add']">新增</el-button>
Q5: 数据字典如何使用?
应用场景:性别、状态、类型等静态数据
使用步骤:
-
系统管理 → 字典管理 → 新增字典类型
-
添加字典数据
-
代码生成时选择字典类型
-
前端自动渲染下拉选项
Q6: 如何配置定时任务?
创建定时任务示例:
java
// 1. 创建任务类
@Component("demoTask")
public class DemoTask {
public void businessMethod() {
System.out.println("执行时间:" + new Date());
}
}
// 2. 系统监控 → 定时任务 → 新增
// 调用目标字符串:demoTask.businessMethod
// 执行表达式:0/5 * * * * ? (每5秒执行)
五、项目结构解析
Q7: 后端项目模块如何划分?
text
com.ruoyi ├── ruoyi-admin // 后台服务模块(启动类) ├── ruoyi-common // 通用工具模块 ├── ruoyi-framework // 框架核心模块 ├── ruoyi-system // 系统代码模块 ├── ruoyi-generator // 代码生成模块 └── ruoyi-quartz // 定时任务模块
核心配置文件:
-
application.yml:项目主配置 -
application-druid.yml:数据源配置 -
logback.xml:日志配置
Q8: 前端项目结构是怎样的?
text
ruoyi-vue3 ├── src │ ├── api // 接口请求 │ ├── assets // 静态资源 │ ├── components // 公共组件 │ ├── router // 路由配置 │ ├── store // 状态管理 │ └── views // 页面组件 ├── package.json // 项目配置 └── vue.config.js // Vue配置
六、二次开发实战
Q9: 如何进行模块定制开发?
修改项目信息:
使用若依框架修改器一键修改包名、项目名等
新建业务模块:
-
在父工程下创建子模块
-
在父pom.xml中版本锁定
-
在ruoyi-admin中添加模块依赖
主子表开发示例(菜品管理):
sql
-- 主表:菜品信息 CREATE TABLE `dish` ( `id` bigint NOT NULL AUTO_INCREMENT, `name` varchar(100) DEFAULT NULL COMMENT '菜品名称', `price` decimal(10,2) DEFAULT NULL COMMENT '售价', `status` tinyint DEFAULT '1' COMMENT '售卖状态', PRIMARY KEY (`id') ); -- 子表:菜品口味 CREATE TABLE `dish_flavor` ( `id` bigint NOT NULL AUTO_INCREMENT, `dish_id` bigint DEFAULT NULL COMMENT '菜品id', `name` varchar(50) DEFAULT NULL COMMENT '口味名称', `value` varchar(500) DEFAULT NULL COMMENT '口味列表', PRIMARY KEY (`id`) );
Q10: 如何自定义页面样式和功能?
更换系统标识:
-
替换
public/favicon.ico和src/assets/logo/logo.png -
修改
index.html中的title -
更新
.env.development中的VITE_APP_TITLE
主题定制:
javascript
// src/settings.js
module.exports = {
title: '我的管理系统',
theme: '#409EFF',
sideTheme: 'theme-dark'
}
组件升级改造:
-
使用Element Plus组件增强用户体验
-
集成OSS图片上传
-
自定义字典渲染逻辑
七、常见问题解决
Q11: 项目启动常见问题?
-
依赖下载失败:配置Maven镜像源
-
数据库连接失败:检查MySQL服务、用户名密码
-
Redis连接失败:检查Redis服务、密码配置
-
端口占用:修改server.port配置
-
前端依赖安装失败:使用npm镜像源
Q12: 代码生成后不生效?
-
执行Maven clean再重新启动
-
检查代码是否复制到正确位置
-
确认菜单SQL已执行
-
检查权限配置是否正确
学习建议
-
循序渐进:从环境搭建 → 代码生成 → 功能定制 → 源码理解
-
实战驱动:结合具体业务需求进行开发练习
-
源码学习:重点理解权限控制、数据流转等核心机制
-
社区参与:加入官方社区,关注版本更新和最佳实践
若依框架作为成熟的企业级开发平台,掌握其核心用法能够显著提升开发效率。建议在学习过程中多动手实践,遇到问题善用官方文档和社区资源。
进一步学习:
-
视频教程:黑马程序员若依框架课程
-
实战项目:CRM系统、外卖管理系统等企业级应用

被折叠的 条评论
为什么被折叠?



