1. 项目背景与核心价值
作为一个长期混迹于网文圈的老书虫,我深知一个好用的在线阅读平台对读者的重要性。去年我用Spring Boot搭建了一个小说网站,从技术选型到功能实现踩了不少坑,今天就把这个项目的完整实现思路和关键代码分享出来。
这个平台的核心价值在于解决了三个痛点:
- 对读者:整合碎片化的网文资源,提供统一的阅读体验,支持个性化书签和阅读记录
- 对作者:建立作品展示渠道,通过阅读数据分析读者偏好
- 对平台:采用模块化架构,便于后续扩展付费章节、打赏等功能
技术选型心得:Spring Boot的starter机制让依赖管理变得极其简单,相比传统SSM框架节省了至少30%的配置时间
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计
2.1 整体架构方案
采用经典的三层架构:
- 表现层:Thymeleaf模板引擎 + Bootstrap5
- 业务层:Spring Boot 2.7 + Spring Security
- 数据层:MySQL 8.0 + MyBatis-Plus
mermaid复制graph TD
A[浏览器] --> B[Nginx]
B --> C[Spring Boot应用]
C --> D[MySQL]
C --> E[Redis缓存]
2.2 数据库设计关键点
主要表结构设计:
- 用户表(user):采用盐值加密存储密码
- 小说表(novel):包含作品状态字段(连载/完结)
- 章节表(chapter):建立双向链表结构实现上一章/下一章快速跳转
- 阅读记录表(reading_log):记录用户最近阅读位置
sql复制CREATE TABLE `chapter` (
`id` bigint NOT NULL AUTO_INCREMENT,
`novel_id` bigint NOT NULL,
`prev_id` bigint DEFAULT NULL COMMENT '上一章ID',
`next_id` bigint DEFAULT NULL COMMENT '下一章ID',
`title` varchar(100) NOT NULL,
`content` longtext NOT NULL,
`word_count` int DEFAULT '0',
PRIMARY KEY (`id`),
KEY `idx_novel` (`novel_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
3. 核心功能实现
3.1 用户认证模块
采用Spring Security + JWT实现无状态认证,关键配置类:
java复制@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void
