小说在线阅读网站和小说管理系统 · 功能全解析

若依框架 · 小说阅读管理系统 · 功能全解析

基于 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 目录

功能亮点总结

  1. PDF 在线阅读体验完整:全屏模式、下载、新标签页三种阅读方式,覆盖不同使用场景
  2. 封面懒加载 + 图片预览:封面图支持懒加载和大图预览,在网络条件一般的环境下体验也不差
  3. 按钮级权限细粒度控制:每个操作按钮都绑定了独立权限码,角色权限管理非常灵活
  4. 嵌套评论数据结构 :通过 parent_id 实现多级评论,扩展性强
  5. 断点续读书架:记录章节 ID 和阅读时间,支持跨设备书架同步场景
  6. 全模块 Excel 导出:运营同学不需要直接操作数据库,后台导数据非常方便
  7. 代码生成器提效:新增模块时用代码生成器打底,开发速度快很多

适用场景

  • 个人/团队的图书管理与阅读平台
  • 企业内部知识库(把 PDF 换成内部文档)
  • 作为 Spring Boot + Vue 全栈项目的学习参考
  • 二次开发成小说平台、电子书城等

如果这个项目对你有帮助,欢迎点赞收藏,后续会继续分享更多开发细节~

体验:http://81.71.93.29

技术栈关键词: Spring Boot Vue2 RuoYi若依 MyBatis JWT Redis PDF在线阅读 Element UI 前后端分离

相关推荐
源码宝1 小时前
基于 SpringBoot + Vue 的医院随访系统:技术架构与功能实现
java·vue.js·spring boot·架构·源码·随访系统·随访管理
*Lisen1 小时前
从零手写 FlashAttention(PyTorch实现 + 原理推导)
人工智能·pytorch·python
王中阳Go1 小时前
2026年了,还在纠结后端转AI要不要死磕Python?试试Go吧
后端·go·ai编程
用户8356290780512 小时前
用 Python 轻松在 Excel 工作表中应用条件格式
后端·python
red1giant_star2 小时前
Python根据文件后缀统计文件大小、找出文件位置(仿Everything)
后端·python
长大19882 小时前
每秒10万写入的订单系统:MySQL分库分表、缓冲设计、批量写入优化实战
后端
渐儿2 小时前
缓存一致性与分布式锁:工程踩坑全解
后端
雷欧力2 小时前
如何使用 Claude API?3 种接入方案实测,附完整代码(2026)
python·claude
长大19882 小时前
为什么我加了索引,查询反而更慢了?
后端