做课设、毕设,最怕选到「只有增删改查」的题目。这套小说阅读网站是个业务味很足的前后端分离项目:门户首页、分类搜索、排行榜、在线阅读、评论、会员中心、作家专区和接口文档都有。后端是 Spring Boot 3 + JDK 21,前端是 Vue 3 + Element Plus,本机只要有 MySQL 和 Redis 就能跑起来。
本文给出实机截图和前后端完整源码包,适合拿来拆模块、改需求、写答辩材料。注意:源码包不含示例小说数据,只带数据库表结构,需要你自己建库导入,再用自己的内容(或在作家专区发布几本测试小说)来演示。
能做什么
- 门户首页:推荐位、热门推荐、精品推荐、最新更新、多种榜单、最新公告
- 分类与搜索:按频道、分类、连载状态、字数、更新时间、排序方式筛选,支持关键字搜索
- 排行榜:点击榜、新书榜、更新榜
- 小说详情与在线阅读:简介、目录、章节正文,上一章/下一章切换
- 评论:登录后可发表、修改、删除评论,个人中心可查看「我的评论」
- 会员中心:注册/登录(带图片验证码)、账号设置、我的评论
- 作家专区:申请成为作家、创建作品、章节管理
- 接口文档:内置 springdoc(Swagger UI),前后端联调、写接口说明都很方便
技术栈
| 部分 | 技术 |
|---|---|
| 后端 | Spring Boot 3、JDK 21、MyBatis-Plus、Spring Security、JWT |
| 数据与缓存 | MySQL 8、Redis 7(Redisson)、Caffeine 本地缓存 |
| 前端 | Vue 3、Vue Router、Element Plus、Axios(Vue CLI 构建) |
| 接口文档 | springdoc-openapi(Swagger UI) |
| 可选模块 | Elasticsearch、RabbitMQ、XXL-JOB、ShardingSphere 默认关闭,不用装 |
代码分层清晰(controller / service / manager / dao),做课设时很容易按模块拆开讲:用户、小说、章节、评论、作家各一块。
环境准备
- JDK 21
- Maven(项目自带
mvnw,不用单独装) - Node 16 + Yarn
- MySQL 8
- Redis 7
本地运行步骤
1. 建库并导入表结构
源码包不含示例小说数据,只提供表结构脚本和一份小说分类字典:
mysql -uroot -p -e "CREATE DATABASE novel DEFAULT CHARSET utf8mb4;"
mysql -uroot -p novel < novel/doc/sql/novel_struc.sql
mysql -uroot -p novel < novel/doc/sql/novel_seed_category.sql # 小说分类(玄幻、武侠等),创建作品时需要
导入后是一个空站:先注册账号,再到「作家专区」申请成为作家、创建作品并发布章节,就有内容可以演示了。xxl-job.sql、shardingsphere-jdbc.sql 只有开启对应功能才用得到。
2. 改后端配置
打开 novel/src/main/resources/application.yml,按你本机情况修改:
- MySQL 的账号和密码
- Redis 的密码(本机 Redis 没设密码就留空)
novel.file.upload.path:默认是作者本机的目录,一定要改成你自己机器上可写的目录- 另外要设置一个非空的
AI_API_KEY环境变量(随便填一个即可)。项目里带了 AI 对话模块,key 为空时后端会在启动阶段直接报错;不使用 AI 功能就不会真的调用
3. 启动后端(端口 8888)
cd novel
export AI_API_KEY=your-own-key # 示例写法,换成你自己的
./mvnw spring-boot:run
4. 启动前端(端口 1024)
cd novel-front-web
yarn install
yarn serve
浏览器打开 http://localhost:1024 即可。接口地址在前端的 .env.development 里,默认指向本机 8888。
5. 账号与内容
项目没有固定的默认账号,在前端「注册」页用手机号和密码自己注册一个读者账号即可(验证码在页面上)。库是空的,想有内容可看,登录后点顶部导航「作家专区」申请成为作家,自己创建作品、发布章节。
界面截图
以下均为本机实际跑起来后的页面截图。截图里的小说书名、作者、正文和封面属于第三方示例内容,已做模糊处理;这些数据也不包含在源码包里。
1. 后端启动成功(8888)

2. 前端启动成功(1024)

3. 门户首页

4. 全部作品(分类筛选)

5. 关键字搜索结果

6. 排行榜

7. 小说详情页

8. 在线阅读页

9. 作品评论区

10. 注册页

11. 会员中心:账号设置

12. 会员中心:我的评论

13. 作家专区:申请成为作家

14. 作家专区:小说管理

15. 作家专区:创建作品

16. 接口文档(Swagger UI)

部署与使用提醒
- 项目里默认的数据库/Redis 密码和 JWT 开发密钥都是开发用的示例值,上线前一定换成你自己的,不要照搬到公网环境。
- 上传目录要改成服务器上真实可写的路径,并做好访问权限控制。
- 邮件、AI 对话、在线充值这类功能依赖第三方服务,本地没有配置时不可用,演示时避开即可。
- 前端是 Vue CLI(webpack)老工具链,推荐 Node 16;换高版本 Node 遇到 openssl 报错时,可以设置
NODE_OPTIONS=--openssl-legacy-provider。 - 实测中作家专区「创建作品」的封面上传需要登录态,如果你本地上传封面提示登录过期,可以给上传组件补上请求头(带上登录 token),或者先跳过封面。
- 源码包不含示例小说数据;请只使用你自己创作或有授权的内容,不要把来路不明的小说文本放到公开站点。
开源许可
后端与前端均遵循 Apache License 2.0,压缩包内保留了各自的 LICENSE 文件。二次开发、再分发时请继续保留许可证与原有的版权声明。
小结
想要一个「看得见、能演示、能拆模块」的 Java + Vue 课设底座,这套小说阅读网站的业务面比较完整:用户体系、内容展示、缓存、评论、作家后台、接口文档一应俱全。按「导入数据 → 改配置 → 启后端 → 启前端 → 注册登录」走一遍就能验收。
源码压缩包可在本文下载,需 60 积分。














暂无评论内容