novel-plus 课程大纲(30 节课)
面向有 Java 基础、目标是能二次开发的学员。基础 + 项目循序渐进:先打牢环境与数据访问,再进框架与安全,最后业务实战、进阶与部署。
每节课 = 主题 + 核心知识点。表中「参考」列指向doc/下三份文档对应章节,学习时可跳转查阅细节。
结构总览
| 部分 | 课时 | 主题 |
|---|---|---|
| 一、基础与工程准备 | L1-L5 | 项目全景、Java 21、Maven、Lombok、MySQL |
| 二、数据访问层 | L6-L10 | MySQL、MyBatis、动态 SQL、分页、分表 |
| 三、Spring Boot 框架层 | L11-L15 | 自动装配、Web、分层、模板、配置 |
| 四、安全与认证 | L16-L18 | JWT、Spring Security、Shiro/RBAC |
| 五、核心业务实战 | L19-L24 | 登录、阅读、缓存、爬虫、创作、支付 |
| 六、进阶机制 | L25-L27 | Spring AI、异步定时、设计模式/AOP |
| 七、部署与综合实战 | L28-L30 | 测试调试、Docker/CI、结课实战 |
一、基础与工程准备
第 1 课 课程导论 + 项目全景
核心知识点:novel-plus 是多端小说 CMS,由 novel-front(前台+作家后台,8083)、novel-crawl(爬虫,8081)、novel-admin(管理后台,80)、novel-common(通用) 四模块组成;技术栈全景与本课程路线。
参考:doc/novel-plus-tutorial.md 第 1 章
第 2 课 Java 21 新特性速览
核心知识点:本项目用到的 Java 21 特性——record(精简实体)、sealed class、switch 增强、文本块、虚拟线程(了解);与旧版本差异。
参考:doc/tech-stack-learning-roadmap.md 2.1 节
第 3 课 Maven 多模块工程
核心知识点:父 pom.xml 的 modules 聚合、dependencyManagement 依赖管理;各子模块职责;阿里镜像与 mirrorOf 拦截坑(pom 顶部注释)。
参考:doc/tech-stack-learning-roadmap.md 2.2 节
第 4 课 Lombok + 开发环境搭建
核心知识点:Lombok 常用注解(@Data/@Slf4j/@Builder)简化 entity;IDEA 装 JDK21 + Maven + Lombok 插件;Git 工作流。
参考:doc/tech-stack-learning-roadmap.md 2.3 节
第 5 课 MySQL 环境 + 数据库初始化
核心知识点:导入 doc/sql/novel_plus.sql 初始化 novel_plus 库;认识核心业务表(book、book_content、user、author、pay 等)与增量脚本。
参考:doc/novel-plus-tutorial.md 2.2、3 章
二、数据访问层
第 6 课 MySQL 核心
核心知识点:表设计范式、索引(唯一/联合)、事务 ACID 与隔离级别;对照本项目的表结构理解字段设计。
参考:doc/novel-plus-tutorial.md 第 3 章
第 7 课 MyBatis 基础
核心知识点:XML 映射(resultMap、select/insert/update/delete)、#{} 与 ${}、动态 SQL(if/where/foreach)。
参考:doc/tech-stack-learning-roadmap.md 3.2 节
第 8 课 MyBatis Dynamic SQL + PageHelper
核心知识点:MyBatis Dynamic SQL 的 Query DSL 写法;PageHelper 分页用法与原理(ThreadLocal + 拦截器)。
参考:doc/novel-plus-source-study.md 阶段 2;doc/tech-stack-learning-roadmap.md 3.2 节
第 9 课 ShardingSphere-JDBC 分表
核心知识点:config/shardingsphere-jdbc.yml 的规则——book_content 按 index_id % 10 拆 10 张表;INLINE 分片算法、路由原理;sql-show 观察。
参考:doc/novel-plus-tutorial.md 9.6 节;doc/tech-stack-learning-roadmap.md 3.3 节
第 10 课 数据层综合实战
核心知识点:以一条真实查询为例,串联「实体(novel-common/entity) → Mapper 动态 SQL → PageHelper 分页 → 分表路由」完整链路。
参考:doc/novel-plus-source-study.md 阶段 2
三、Spring Boot 框架层
第 11 课 Spring Boot 核心
核心知识点:自动装配原理(@EnableAutoConfiguration、starter)、启动类、@ConfigurationProperties 配置绑定。
参考:doc/tech-stack-learning-roadmap.md 4.1 节
第 12 课 Spring Web
核心知识点:@RestController、请求参数绑定(@PathVariable/@RequestParam/@RequestBody)、全局异常 @ControllerAdvice、跨域。
参考:doc/novel-plus-source-study.md 阶段 1
第 13 课 分层架构与请求链路
核心知识点:以首页 PageController 为例,走通「过滤器 → Controller → Service → Mapper → VO → 模板」完整请求链路;分层职责与依赖方向。
参考:doc/novel-plus-source-study.md 阶段 1-2
第 14 课 Thymeleaf + Layui 模板渲染
核心知识点:Thymeleaf 表达式与 th:* 标签;Layui 表格/表单;多模版与主题切换机制(templates 目录)。
参考:doc/novel-plus-tutorial.md 8 章
第 15 课 配置文件体系
核心知识点:application.yml 主配置 + application-{dev,website,alipay,oss,prod}.yml 多环境 profile;自定义配置项读取;日志配置。
参考:doc/novel-plus-tutorial.md 10 章
四、安全与认证
第 16 课 前台 JWT 认证
核心知识点:JWT 结构(header/payload/signature)、JJWT 生成与校验、登录流程、Token 校验拦截器。
参考:doc/novel-plus-source-study.md 阶段 3 场景 1;doc/tech-stack-learning-roadmap.md 4.3 节
第 17 课 Spring Security 入门
核心知识点:过滤器链、认证/授权模型;本项目的 novel-crawl/.../core/config/SecurityConfiguration.java 是怎么用的。
参考:doc/tech-stack-learning-roadmap.md 4.2 节
第 18 课 Shiro + RBAC 权限
核心知识点:Shiro 三大核心(Subject/SecurityManager/Realm);管理后台菜单-角色-用户 RBAC 模型;DataPermInterceptor 数据权限过滤。
参考:doc/novel-plus-source-study.md 阶段 3 场景 6
五、核心业务实战
第 19 课 注册登录 + 会员业务
核心知识点:注册校验、密码加密、登录签发 JWT、会员信息缓存与查询完整流程。
参考:doc/novel-plus-tutorial.md 9.1 节
第 20 课 小说阅读链路 + 存储策略模式
核心知识点:书源/章节/内容读取流程;DbBookContentServiceImpl 与 FileBookContentServiceImpl 的 DB/TXT 双存储策略切换。
参考:doc/novel-plus-source-study.md 阶段 3 场景 2;doc/novel-plus-tutorial.md 9.2 节
第 21 课 缓存体系(Redis/Redisson)
核心知识点:缓存 key 设计、读多写少场景缓存、缓存失效/更新策略;Redisson 分布式锁与 admin 会话共享。
参考:doc/novel-plus-source-study.md 阶段 3 场景 3
第 22 课 爬虫子系统
核心知识点:novel-crawl 规则引擎(RuleBean、CrawlParser、PatternFactory)、采集任务调度、去重与入库;免责声明提醒(仅供学习)。
参考:doc/novel-plus-tutorial.md 9.3 节;doc/tech-stack-learning-roadmap.md 7.3 节
第 23 课 作家创作 + 章节发布 + 稿费计算
核心知识点:作家入驻、创建作品、章节发布事务;作者分成与稿费计算逻辑(application.yml 中的分成/定价配置)。
参考:doc/novel-plus-tutorial.md 9.4 节
第 24 课 支付宝支付 + 订阅充值
核心知识点:alipay-sdk-java 下单、回调验签、订单状态流转、订阅模式(PayController/相关 Service)。
参考:doc/tech-stack-learning-roadmap.md 7.4 节
六、进阶机制
第 25 课 Spring AI 写作
核心知识点:Spring AI 1.0 客户端配置(硅基流动 key、OpenAI 兼容接口);AI 扩写/续写/润色/封面生成如何接入编辑器。
参考:doc/novel-plus-tutorial.md 9.5 节;doc/AI功能无反应诊断.md(排障)
第 26 课 异步与定时任务
核心知识点:core/config/ThreadPoolConfig.java 线程池、@Async 异步方法;core/schedule/ 下 3 个定时任务(收入统计、图片搬运);CompletableFuture 并行加载。
参考:doc/novel-plus-source-study.md 阶段 1、3 场景 3;doc/tech-stack-learning-roadmap.md 7.1 节
第 27 课 设计模式与 AOP
核心知识点:项目中用到的策略/模板方法模式;AOP 切面 LogAspect(操作日志)、DataPermInterceptor(数据权限)的原理。
参考:doc/novel-plus-source-study.md 阶段 3 场景 6
七、部署与综合实战
第 28 课 测试与调试
核心知识点:单元测试(spring-boot-starter-test)、接口测试方法;日志分级与排障思路(对照 AI功能无反应诊断.md 的根因定位法)。
参考:doc/AI功能无反应诊断.md
第 29 课 Docker + CI/CD 部署
核心知识点:Maven 打包三个 JAR、Dockerfile 与镜像(JDK21 基础镜像)、docker-compose 编排 MySQL/Redis/应用;GitHub Actions 自动化。
参考:doc/novel-plus-tutorial.md 11 章;doc/tech-stack-learning-roadmap.md 5 章
第 30 课 结课综合实战
核心知识点:把全部知识串起来做一次二次开发——选一个真实需求(如给书加字段/加推荐接口/改分成规则),从数据库、Mapper、Service、Controller、模板到部署全链路完成。
参考:doc/novel-plus-source-study.md 二次开发备忘、学习验证清单
使用建议
- 前置:先跑通项目(教程第 2 章),再按本大纲逐课推进;第 10、13、30 课是三层「综合课」,务必动手。
- 节奏:每周 8 小时约 3-5 课,可 8-10 周学完;基础部分(第一部分)可结合自身基础加速跳过。
- 验证:每课结束用「我能动手做什么」自测(如学完 L8 就写一个带分页的查询),做不出来回头重读对应参考章节。