这篇博客记录了我学习若依(RuoYi)快速开发框架,从零改造实现智慧居家养老安全监护系统的全过程。从最开始对着项目源码画思维导图梳理文件结构,到一步步改造前后端、实现业务功能,既是一次完整的框架学习实践复盘,也是给自己留一份成长记录,证明这段时间的摸索与学习成果。
🎯 1. 项目背景与技术选型
先简单介绍一下若依系统——它是一套完全开源的免费快速开发平台,前后端分离版本采用Vue + Element UI + Spring Boot + Spring Security + Redis的技术栈,内置了用户管理、RBAC权限控制、日志管理、代码生成器等通用基础功能,无需从零搭建系统的基础能力,非常适合用来快速开发业务系统,也方便我边学习框架边实现自己的项目需求。
本次实践的目标是搭建一套面向独居老人的居家养老监护系统,核心需求是:基于若依改造Web端管理系统,实现老人信息管理、服务管理、实时监控、数据可视化等功能。
📚 2. 个人对若依系统整体的理解和总结
🔐 权限管理(RBAC 核心)
这是若依最核心、最基础的能力,几乎所有后台系统都离不开。
- 用户管理:新增/禁用/编辑用户,分配角色,重置密码。
- 角色管理:创建角色、分配菜单权限、分配数据权限(只能看自己/本部门/全部数据)。
- 菜单管理:配置系统菜单、路由、按钮权限标识(如
system:user:list)。 - 部门管理:树形组织架构,支持数据权限控制。
- 岗位管理:配置用户所属岗位,用于组织化管理。
用户 → 角色 → 菜单/数据权限,标准 RBAC 模型。
⚙️ 系统管理(基础配置)
所有系统通用的“配置类”功能,开箱即用。
- 字典管理:维护系统通用固定数据(如性别:男/女、状态:正常/禁用),前端直接引用,避免硬编码。
- 参数管理:动态配置系统参数(如文件上传大小、登录有效期),无需改代码重启。
- 通知公告:发布系统公告、站内信。
- 文件上传:支持本地/云端等,统一文件管理。
📜 日志与安全审计(企业必备)
若依内置完整日志体系,满足安全审计、故障排查需求。
- 操作日志:记录谁、何时、IP、做了什么操作,支持导出、查询。
- 登录日志:记录登录成功/失败、验证码错误、锁定账号等。
- 在线用户:查看当前活跃用户,可强制下线。
- 安全机制:验证码、密码加密、接口防刷、XSS防护、SQL注入防护。
📊 系统监控(运维能力)
帮助开发者实时掌握服务器与系统运行状态。
- 服务监控:CPU、内存、磁盘、JVM 堆/非堆、GC 情况。
- 缓存监控:Redis 信息、key 统计、命令监控。
- 连接池监控:Druid 连接池状态、SQL 执行分析,定位慢查询。
🚀 快速开发工具(最能提升效率)
这是若依被称为“快速开发框架”的关键。
代码生成器(核心)
输入数据库表 → 一键生成:- 后端:Entity、Mapper、Service、Controller
- 前端:Vue 列表页、表单页、API
- 数据库:SQL 脚本
生成即可用,节省 80% 重复 CRUD 代码。
定时任务:在线添加/修改/删除定时任务,支持 cron 表达式、执行日志。
在线表单构建器:拖拽生成 HTML 表单代码。
系统接口文档:自动生成 Swagger API 文档。
🗺️ 3. 前期准备:用思维导图梳理若依项目结构
整个系统采用前后端分离架构。
后端基于Spring Boot框架处理业务逻辑,使用MySQL存储结构化数据,Redis作为缓存层提升响应速度;
前端采用Vue.js+Element UI实现界面,同时扩展了小程序端支持点餐等便捷操作。
刚开始接触若依框架时,我对项目文件结构完全陌生,不知道要实现自己的业务功能该修改哪些文件,所以我对着项目源码,画了一份详细的思维导图,把每个目录、文件的作用都标注出来,同时标记了哪些是基础框架文件(无需修改)、哪些是业务开发时需要重点改造的文件,相当于自己的“项目改造地图”。

🖥️ 前端项目结构梳理
若依的前端项目基于Vue开发,核心目录结构及我的项目改造点如下:
| 目录/文件 | 作用 | 我的项目改造点 |
|---|---|---|
public/ |
静态资源、公共配置 | 替换项目logo、修改页面标题、配置favicon |
src/assets/ |
静态资源(图片、样式) | 新增养老项目相关图标、自定义全局样式文件 |
src/components/ |
公共组件库 | 新增监控画面组件、数据大屏图表组件、餐品卡片组件、预警提示组件 |
src/views/ |
业务页面(核心改造点) | 新增养老项目专属页面:客户信息管理、志愿者管理、服务管理(餐品列表/服务信息)、实时监控、厨房与服务、数据大屏 |
src/router/ |
路由配置 | 新增业务页面路由,关联菜单权限,实现动态菜单加载 |
src/store/ |
Vuex状态管理 | 扩展用户信息、菜单状态,适配项目权限控制 |
src/styles/ |
全局样式 | 自定义项目主题色、修改Element UI组件默认样式 |
src/utils/ |
工具类封装 | 新增摄像头流处理工具、预警消息格式化工具、时间格式化工具 |
🖥️ 后端项目结构梳理
后端基于Spring Boot开发,若依已经封装好了通用的基础模块,我只需要扩展业务相关的模块:
ruoyi-system:基础的用户、角色、菜单、权限管理模块,直接复用无需修改ruoyi-framework:框架核心配置模块,包含安全认证、Redis缓存、日志配置、全局异常处理等- 新增业务模块:
ruoyi-elder(老人/客户信息管理)、ruoyi-volunteer(志愿者管理)、ruoyi-service(养老服务与餐品管理)、ruoyi-monitor(监控数据处理),每个模块包含controller、service、mapper、entity层,通过MyBatis操作数据库,实现业务接口。
🔧 4. 基于若依框架的前后端改造与功能实现
用户可以在左侧的菜单栏来根据自己的需求使用系统功能,系统基于Vue.js框架构建,采用Element-UI组件库实现专业级交互界面,通过Axios实现与Spring Boot后端RESTful API通信,前后端解耦的架构大幅提升了系统的可维护性。
♻️ 基础功能复用
若依自带的基础功能直接满足了系统的通用需求,我没有重复开发,直接复用了这些能力:
- 基于RBAC的权限管理:为管理员、普通员工等不同角色分配相应操作权限,从根源上防范数据泄露,保障数据安全
- 日志管理:操作日志、登录日志记录,详细记录用户登录时间、IP地址及操作内容,助力故障排查与安全审计
- 系统监控:实时采集CPU使用率、内存使用率和响应时间等性能指标,及时发现系统潜在问题
- 代码生成器:对于老人信息、餐品列表、服务信息这类CRUD页面,直接用代码生成器一键生成前后端基础代码,再修改字段和样式,大幅提升了开发效率
🎨 前端业务功能改造实现
基于之前梳理的文件结构,我在src/views/目录下新增了养老项目的特色业务页面,以下是核心功能的实现说明:
🍱 服务管理模块:餐品列表与服务信息
这是系统的核心业务模块之一,分为餐品列表和服务信息两个子页面,分别用于管理养老餐品和上门服务项目,界面如下:

- 餐品列表页面:实现了老人餐食套餐的CRUD管理,支持餐品图片预览、套餐描述、价格与剩余份数展示,管理员可通过新增/修改/删除操作维护餐品库,同时支持导出餐品信息。页面支持按序号、图片名称快速搜索,方便厨房人员快速定位餐品信息。
核心改造文件:src/views/service/meal/index.vue,通过修改表格列配置,新增图片预览组件、套餐描述文本域,适配餐品信息的展示需求。 - 服务信息页面:管理保洁、陪护、助行、代购等上门养老服务项目,包含服务描述、价格、可预约次数等字段,同样由代码生成器快速生成基础CRUD代码,再自定义修改样式和字段。
📹 实时监控模块:多摄像头AI姿态监测
这是系统的安全核心功能,基于树莓派摄像头采集的实时画面,集成YOLOv8-pose姿态检测模型,实现多社区、多房间的老人居家行为监测,界面如下:

页面支持同时展示多个社区的监控画面,每个画面都叠加了YOLOv8-pose识别的人体关键点和行为标签(如sit、up)及置信度,当识别到老人跌倒、长时间静止等异常行为时,会自动生成预警日志并标红提醒。
核心改造点:
- 新增
src/views/monitor/realTime/index.vue页面,实现多摄像头画面的网格布局展示 - 封装
src/components/monitor/VideoPlayer.vue自定义组件,支持实时视频流播放和姿态检测结果渲染 - 对接后端监控数据接口,实现预警信息的实时推送与展示,异常行为自动高亮标红
👥 客户信息与志愿者管理模块
基于若依的基础用户管理能力扩展,实现了养老场景专属的人员管理功能。
- 客户信息管理:支持管理员对社区老人信息进行增删改查,维护老人基本信息、紧急联系人、健康状况等数据,确保信息的及时性与准确性。
- 志愿者管理:分为志愿活动管理和志愿服务管理两个子模块,可维护志愿者信息、活动报名记录、服务时长统计,实现养老服务人员的规范化管理。
📈 其他特色功能:厨房与服务、数据大屏
- 厨房与服务管理:实现了小程序端老人点餐信息的实时同步,管理端可即时展示订单详情,便于厨房与服务人员高效处理订单,打通了“用户下单-厨房制作-服务配送”的全流程链路。
- 数据大屏:以可视化图表的形式汇总展示社区老人数据、点餐统计、服务满意度、预警信息等运营数据,同时集成基于K-means算法的AI行为分析模型,自动识别老人异常行为模式(如跌倒、长时间静止)并划分风险区域,为社区管理人员提供直观的决策依据,同时支持实时接收异常预警信息,快速采取干预措施。
🛠️ 后端业务接口扩展
后端在若依的基础上,新增了业务相关的接口模块,主要包括:
- 老人/客户信息管理接口:实现老人信息的CRUD操作,存储老人基本信息、紧急联系人信息、健康状况等数据。
- 服务与餐品管理接口:管理养老服务项目和餐品套餐信息,处理小程序端的点餐/服务订单请求,同步订单状态至管理端,支持餐品库存与服务预约次数的更新。
- 志愿者管理接口:实现志愿者信息、志愿活动、服务记录的管理,支持服务时长统计与活动报名状态更新。
- 监控数据接口:接收树莓派上传的视频流和传感器数据,对接YOLOv8-pose模型处理结果,存储预警日志,支持前端查询历史记录与实时推送预警信息。
- 数据大屏接口:汇总老人数据、服务订单数据、预警数据,为前端可视化大屏提供数据支持,同时提供K-means行为分析结果的接口。
同时,复用了若依的Redis缓存能力,把频繁访问的老人信息、餐品列表、服务项目缓存到Redis中,减少数据库查询压力,提升系统响应速度。
🎓 5. 学习心得与总结
这次基于若依框架开发智慧养老系统的实践,对我来说是一次非常完整的学习过程,也真正让我体会到了“从无到有”开发项目的乐趣:
- 学会了如何学习开源框架:最开始对着项目源码无从下手,通过画思维导图梳理文件结构,把每个目录、每个文件的作用搞清楚,慢慢理解了若依框架的设计思路,知道了“哪些文件不用动、哪些文件是业务开发的核心”,解决了新手最容易遇到的“不知道该改哪里”的问题。
- 大幅提升了开发效率:学会了利用若依的代码生成器快速开发CRUD页面,不用从零写重复的增删改查代码,把精力放在业务逻辑和自定义功能的实现上,也理解了“快速开发框架”的真正价值。
- 深入理解了前后端分离开发模式:通过这次项目,完整实践了前后端分离的开发流程,从接口定义、数据交互到页面渲染,理解了前后端如何配合实现业务功能,也学会了如何基于现有框架扩展自定义功能。
- 形成了自己的学习方法论:这次实践让我明白,学习开源框架不能只停留在“跑通demo”,而是要深入理解其文件结构和设计思路,通过梳理结构、标记改造点、分步实现功能,才能真正掌握框架的使用方法,为后续的项目开发打下基础。
这次实践的成果,不仅是一个可以运行的智慧养老系统,更重要的是我真正学会了如何学习和改造一个开源框架,也证明了这段时间的摸索与学习没有白费。