若依框架 · 小说阅读管理系统 · 功能全解析
基于 RuoYi 若依框架二次开发,一套完整的在线图书/小说管理与阅读系统,前后端分离架构,开箱即用。
写在前面
最近用 Spring Boot + Vue 做了一个小说阅读管理系统,把整个开发过程和功能点整理出来,供大家参考。系统基于若依框架(RuoYi v3.8.9)做了深度定制,加入了图书管理、作者管理、话题讨论、评论系统、PDF 在线阅读、用户书架等模块,功能比较完整,适合拿来做学习参考或者二次开发的基础底座。
【最下方有网址可以体验】
【最下方有网址可以体验】
【最下方有网址可以体验】
技术栈一览
后端
| 技术 | 版本 | 说明 |
|---|---|---|
| Java | 1.8 | 后端开发语言 |
| Spring Boot | 2.5.15 | 核心应用框架 |
| Spring Security | 5.7.12 | 权限认证体系 |
| MyBatis | 3.x | ORM 持久层框架 |
| MySQL | 8.0+ | 主数据库 |
| Redis | --- | 缓存(Session、Token) |
| Druid | 1.2.23 | 数据库连接池 |
| JWT | 0.9.1 | 无状态 Token 认证 |
| PageHelper | 1.4.7 | 分页插件 |
| POI | 4.1.2 | Excel 数据导出 |
| Swagger | 3.0.0 | API 接口文档 |
前端
| 技术 | 版本 | 说明 |
|---|---|---|
| Vue 2 | 2.6.12 | 前端核心框架 |
| Element UI | 2.15.14 | 组件库 |
| Vue Router | 3.4.9 | 路由管理 |
| Vuex | 3.6.0 | 全局状态管理 |
| Axios | 0.28.1 | HTTP 请求 |
| PDF.js | 2.6.347 | PDF 在线渲染 |
| ECharts | 5.4.0 | 数据可视化图表 |
| Webpack | --- | 工程化构建 |
系统架构
整体采用前后端分离的方式部署,后端暴露 RESTful API,前端 Vue 应用通过 Axios 调用接口,JWT Token 做鉴权,Redis 做缓存加速。
前端(Vue + Element UI)
↓ HTTP/HTTPS
后端(Spring Boot + MyBatis)
↓
MySQL + Redis
后端按模块划分,novel 模块作为核心业务模块独立拆出,和若依原有的 system、framework 模块解耦,方便单独维护和扩展。
核心功能模块
1. 首页书架展示
系统首页以卡片形式展示精选图书,包含封面图、书名、作者、字数统计、阅读量、收藏量等核心信息,点击"开始阅读"可直接跳转 PDF 阅读页面,右侧"更多书籍"链接到完整图书列表。
首页的设计参考了市面上主流书城的布局,重点突出封面视觉,尽量让书本的封面说话------毕竟一张好封面比任何文字介绍都直观。
2. 图书信息管理
这是整个系统的核心数据管理页面,支持对图书进行完整的 CRUD 操作。
主要功能:
- 多条件组合搜索(书名、分类、作者、字数等)
- 表格分页展示,每页条数可配置
- 新增、修改、删除(支持批量删除)
- 数据一键导出为 Excel,方便离线整理
首页

找书

数据字段:
- 图书分类、书名、封面图片 URL
- 作者关联、字数统计
- 连载/完结状态标识
- 内容简介
字段设计上参考了常见书城的数据结构,连载状态用 CHAR(1) 存储,0 表示连载中,1 表示已完结,查询和展示都很方便。
3. 作者管理
独立的作者信息管理模块,不和图书信息耦合,通过外键关联,方便一个作者对应多本书的场景。
管理字段:
- 作者姓名
- 头像图片 URL
- 作者简介(长文本)
操作支持:
- 增删改查、批量删除
- 导出 Excel
这个模块设计得比较简洁,实际项目里可以扩展作者的粉丝数、认证状态、联系方式等字段,扩展性很强。

4. PDF 在线阅读
这是整个系统里技术含量比较高的模块,也是功能亮点之一。
核心能力:
- 图书列表展示封面缩略图(懒加载,避免首屏卡顿)
- 点击"在线阅读"按钮,弹出 PDF 预览弹窗
- 支持全屏阅读模式,一键切换
- 支持下载 PDF 到本地
- 支持在新标签页独立打开 PDF,适合长时间阅读
- PDF 加载过程有 loading 动画,体验更流畅

技术实现:
用 <iframe> 嵌入浏览器原生 PDF 渲染能力,同时配合系统内置的 PDF.js 库(pdfjs-dist v2.6.347)做增强渲染。弹窗样式做了专门定制,顶部工具栏固定,阅读区域占满剩余高度,视觉效果接近原生阅读器。
封面图片和 PDF 文件按书名做了命名关联,比如 被讨厌的勇气.pdf 对应封面 被讨厌的勇气.png,前端自动根据文件名拼接路径,不需要额外存储封面和 PDF 的对应关系。
目前系统内置了以下 PDF 书目:
- 被讨厌的勇气
- 面纱
- 亲密关系
- 海的女儿
- 千面英雄
- 银河帝国:基地七部曲
- 助推
- 建立共同愿景
- 系统的公民
- 心智力
- 昭和解体
- 肿瘤医嘱手册
5. 话题讨论
类似贴吧/论坛的话题功能,用户可以围绕图书发起讨论。
功能点:
- 发布话题(标题 + 内容)
- 浏览量自动统计
- 评论数实时更新
- 话题状态管理(正常 / 关闭)
- 分页列表,支持导出
这个功能适合做读书打卡、书评讨论等场景,如果前端再做一个专门的讨论区界面,用户活跃度会更好。

6. 评论系统

支持章节级评论,数据结构上用 parent_id 做了嵌套评论的设计,理论上可以支持多级回复。
7. 用户书架

用户可以把感兴趣的书加入个人书架,系统会记录最后阅读的章节 ID 和阅读时间,下次打开可以从上次读到的地方继续。
字段设计:
user_id+book_id:唯一标识一条书架记录last_chapter_id:最后阅读章节,支持断点续读last_read_time:最后阅读时间(DATE 类型)
书架数据既可以在 APP 端显示用户的个人阅读历史,也方便后台做阅读行为分析。
系统级能力
除了业务模块,系统继承了若依框架的完整基础能力,这里做个汇总:
权限控制体系
- Spring Security + JWT Token 双重保障
- 登录 Token 存 Redis,支持 Token 续期
- 动态菜单权限(不同角色看到不同菜单)
- 按钮级权限控制 :每个操作按钮都有独立的权限标识,通过
v-hasPermi指令控制显示
比如图书管理模块的权限标识:
novel:info:list 查看列表
novel:info:add 新增图书
novel:info:edit 修改图书
novel:info:remove 删除图书
novel:info:export 导出数据
统一异常处理
全局统一处理异常,接口返回格式规范(code + msg + data),前端不需要针对每个接口单独处理异常情况。
操作日志
所有关键操作(增删改)通过 @Log 注解自动记录到日志表,方便事后审计和排查问题。
Excel 导出
所有业务模块都支持数据导出,底层用 Apache POI v4.1.2,支持按当前查询条件过滤后导出,不是无脑全量导出。
代码生成器
框架内置代码生成器,基于 Velocity 模板,可以根据数据库表结构自动生成前后端代码(Controller、Service、Mapper、Vue 页面、API 文件),日常开发效率提升非常明显。
分页查询
PageHelper 插件统一分页,接口返回 TableDataInfo(rows + total),前端 pagination 组件直接对接,代码量很少。
数据库表设计
系统核心业务表共 6 张:
book_author 作者信息表
book_info 图书信息表
book_topic 话题讨论表
book_comment 图书评论表(含嵌套评论)
book_pdf 图书 PDF 文件表
user_bookcase 用户书架表
外加若依框架自带的系统表(用户、角色、菜单、字典、日志等)约 20+ 张。
部署说明
环境要求
- JDK 1.8+
- MySQL 8.0+
- Redis(本地或远程)
- Node.js 8.9+(前端构建)
快速启动
后端:
bash
# 1. 导入初始化 SQL
mysql -u root -p < sql/novel2.sql
# 2. 修改数据库连接
vi ruoyi-admin/src/main/resources/application-druid.yml
# 3. 启动 Spring Boot
mvn clean package -DskipTests
java -jar ruoyi-admin/target/ruoyi-admin.jar
前端:
bash
cd ruoyi-ui
npm install
npm run dev # 开发模式,访问 http://localhost:9528
npm run build:prod # 生产构建,输出 dist 目录
功能亮点总结
- PDF 在线阅读体验完整:全屏模式、下载、新标签页三种阅读方式,覆盖不同使用场景
- 封面懒加载 + 图片预览:封面图支持懒加载和大图预览,在网络条件一般的环境下体验也不差
- 按钮级权限细粒度控制:每个操作按钮都绑定了独立权限码,角色权限管理非常灵活
- 嵌套评论数据结构 :通过
parent_id实现多级评论,扩展性强 - 断点续读书架:记录章节 ID 和阅读时间,支持跨设备书架同步场景
- 全模块 Excel 导出:运营同学不需要直接操作数据库,后台导数据非常方便
- 代码生成器提效:新增模块时用代码生成器打底,开发速度快很多
适用场景
- 个人/团队的图书管理与阅读平台
- 企业内部知识库(把 PDF 换成内部文档)
- 作为 Spring Boot + Vue 全栈项目的学习参考
- 二次开发成小说平台、电子书城等
如果这个项目对你有帮助,欢迎点赞收藏,后续会继续分享更多开发细节~
技术栈关键词:
Spring BootVue2RuoYi若依MyBatisJWTRedisPDF在线阅读Element UI前后端分离