拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

【AI驱动开发】Java 全栈博客项目(学习项目)

【AI驱动开发】Java 全栈博客项目(学习项目)

Java 全栈博客项目(AI 驱动开发实战)

⭐项目 GitHub 仓库:https://github.com/HaoqiangLu/java-blog

一个以AI 驱动开发模式完成的全栈博客平台实战教程。人与 AI 协同,从零搭骨架开始,按功能逐步叠加,最终做出一个包含用户认证、文章评论、实时聊天、AI 助手,并支持 Docker / Kubernetes 部署的现代 Web 应用。

本仓库由两部分组成:

目录内容
docs/分步教程文档(Part 1–9 + 技术原理深挖),主线学习内容
java-blog/与教程对应的完整代码实现(后端 + 前端 + 部署配置)

教程采用「功能驱动、依赖即用即加」的组织方式:不是先把地基铺满,而是每做一个功能,缺什么依赖 / 数据库 / 配置才引入什么,让每一步都看得见动机。

⚠️说明:本仓库的全部文档与代码均由个人与 AI 协同完成,内容难免存在错误或过时的地方,仅供学习与参考。如发现有误,欢迎通过 Issue 指出,我会及时修正。


技术栈

层技术
后端Java 25、Spring Boot 3.5、Spring Security 6(JWT 无状态认证)、Spring Data JPA、Spring WebSocket
前端React 19、TypeScript 5、Vite、React Router v7、TanStack Query、Zustand、TailwindCSS 4
数据库PostgreSQL 17(Flyway 迁移)、Redis 7(Token 黑名单 / Pub/Sub)
消息队列Kafka(KRaft 模式)
扩展AI 助手(Ollama / 本地代理)、Actuator + Micrometer 可观测性
部署Docker Compose、Kubernetes(Kustomize + Nginx Ingress + HPA)、GitHub Actions CI/CD(可选,未实践)
开发工具IntelliJ IDEA、Maven 3.9、pnpm、Node.js 24、Git

功能模块

  • 用户认证:注册 / 登录 / JWT 签发与刷新、Redis Token 黑名单、BCrypt 密码加密
  • 文章与评论:文章 CRUD、分页、全文搜索、Markdown 渲染、评论
  • 实时聊天:Spring WebSocket + Redis Pub/Sub 多实例广播、聊天室管理
  • 前端应用:React SPA、服务端状态管理、受保护路由、深色模式
  • 安全加固:CORS、XSS 防护、接口限流、安全响应头、方法级权限(@PreAuthorize)
  • 功能扩展:AI 聊天助手(纯非流式)、Kafka 事件流、Actuator 监控指标
  • 部署上线:Docker 多阶段构建、docker-compose 一键启动、Kubernetes 集群部署(跟docker compose会有冲突)、GitHub Actions 自动化流水线(我没有去弄)

文档阅读顺序

教程必须按顺序阅读,每个 Part 都在前一个基础上增量构建(依赖、配置、数据库迁移、安全白名单都随功能逐步引入)。

顺序文档内容
0idea-configuration.mdIDE 环境配置(前置准备)
1part1-environment-and-skeleton.md工具安装 + 最小 Spring Boot 骨架(可直接启动)
2part2-user-auth.md用户认证:Postgres + JPA + Flyway + Security + JWT + Redis
3part3-posts-and-comments.md文章与评论:建表 + Service/Controller + 放行接口
4part4-websocket-chat.mdWebSocket 实时聊天 + Redis Pub/Sub
5part5-frontend.md前端初始化(Vite/pnpm)+ React 完整实现
6part6-security.md限流 / XSS / 前端校验等安全加固
7part7-extensions.md可观测性 + Kafka + AI 功能扩展
8part8-deployment-cicd.mdDocker 构建 + docker-compose + Nginx + GitHub Actions
9part9-kubernetes.mdKubernetes 部署方案(Part 8 的集群升级替代方案,可选)

辅助文档

  • technical-deep-dive.md:每项技术的原理详解,遇到不理解的技术时随时查阅。
  • docs/summary/:阶段性复盘总结。

Part 8(Docker Compose)与 Part 9(Kubernetes)是同一部署目标的两种方案,逻辑上二选一即可,但不能同时运行:两者共享同一个 Docker 引擎,同时跑会端口 / 资源冲突,切换前先执行docker compose down停掉 Part 8 的容器。


快速启动

代码位于java-blog/,两种本地运行方式:

Docker Compose(推荐本地开发)

cd java-blog docker compose-f docker/docker-compose.yml up-d--build

访问:https://myblog.local:4443

Kubernetes

cd java-blog kubectl apply-k k8s/# 需两个终端分别运行kubectl port-forward svc/frontend-svc-n blog-platform 5000:80 kubectl port-forward svc/backend-svc-n blog-platform 8080:8080

访问:http://localhost:5000

更多部署细节见java-blog/docker/README.md与java-blog/k8s/README.md。


目录结构

blog-project/ ├── README.md # 本文件 ├── docs/ # 教程文档(Part 1–9 + 技术深挖 + 复盘总结) └── java-blog/ # 代码实现(Git 仓库根) ├── backend/ # Spring Boot 后端(Maven) ├── frontend/ # React 前端(pnpm) ├── docker/ # Docker Compose 部署配置 ├── k8s/ # Kubernetes 部署配置 ├── nginx/ # Nginx 反向代理 + 本地 HTTPS 证书 └── deploy/ # Kafka topic 等部署资源

学习建议

  1. 先按Part 1装好环境、跑通最小骨架,确认工具链正常。
  2. 严格按顺序推进,每个 Part 结束后自己动手复现,而不是只复制代码。
  3. 遇到不理解的技术名词,去 technical-deep-dive.md 查原理。
  4. 阶段完成后阅读 docs/summary/ 里的复盘,把一条链路从头讲一遍以巩固记忆。
返回列表