一个基于 Java 21 和 Spring Boot 3 构建的现代化个人博客系统,包含美观的前端展示界面及功能完善的后台管理系统。
- 首页展示:动态加载博客文章列表,支持分页查询。
- 文章详情:支持查看文章全文,排版优雅。
- 关于我:个人简介展示。
- 联系我们:访客在线留言反馈。
- 用户管理:
- 管理员可新增/删除用户(内置
admin保护)。 - 查看用户在线状态,支持强制下线。
- 用户个人资料(真实姓名)修改及密码修改。
- 管理员可新增/删除用户(内置
- 文章管理:
- 文章发布(支持 Quill 富文本编辑器)、编辑、删除。
- 支持 图片上传,后端自动对接 rustFS 存储。
- 图片限制规则:
- 大小限制: 可配置(默认 5MB,见
application.yml中的blog.upload.max-size)。 - 格式限制: 仅支持
jpg,jpeg,png,gif,webp。 - 内容校验: 后端集成 Apache Tika 进行真实 MIME 类型检测,防止伪造后缀上传。
- 大小限制: 可配置(默认 5MB,见
- 支持 标签(Tags) 系统及 浏览次数(View Count) 统计。
- 支持分页管理及权限校验(用户仅能删改自己的文章)。
- 留言管理:管理员可实时查看并管理访客留言。
- 安全机制:基于 Redis 的 Token 鉴权,支持 Token 自动过期与活跃自动续期。
- 核心框架:Java 21, Spring Boot 3.4.3
- 数据库相关:MySQL 8.0.45, MyBatis Plus 3.5.7
- 文件存储:rustFS (通过 MinIO SDK 对接)
- 缓存/鉴权:Redis
- 工具类:Lombok, Alibaba FastJSON2
- 打包部署:Maven Assembly Plugin (分模块打包), Shell 脚本启停
- 基础技术:HTML5, CSS3, JavaScript (Vanilla JS)
- 富文本编辑器:Quill.js
- 字体/样式:Google Inter Fonts, 响应式布局
- 通信:Fetch API (封装于 api.js)
graph TD
User((访客/管理员)) -->|Browser| Frontend[前端页面 HTML/CSS/JS]
Frontend -->|POST JSON| API[后端接口 Spring Boot]
API -->|Auth| Interceptor[Token 拦截器]
Interceptor -->|Validate| Redis[(Redis)]
API -->|CRUD| Service[Service 业务逻辑]
Service -->|MyBatis Plus| DB[(MySQL 8.0.45)]
- JDK 21+
- MySQL 8.0.45
- Redis 6.0.16 (需开启密码认证)
- rustFS (兼容 MinIO 协议的对象存储)
后台程序与所有中间件运行在同一台服务器上,具体配置如下:
| 组件类型 | 版本 | 关键配置 | 账号/密码 | 端口 | 其他信息 |
|---|---|---|---|---|---|
| MySQL | 8.0.45 | 数据库名:blog | 用户名:root 密码:12345678 |
3306 | - |
| Redis | 6.0.16 | 强制密码认证 库:db0 |
密码:12345678 | 6379 | - |
| rustFS | - | - | 用户名:rustfsadmin 密码:rustfsadmin |
API端口:9000 管理端口:9001 |
- |
执行 backend/sql/blog.sql 脚本以初始化库表及内置 admin 账号。
cd backend
mvn clean package -DskipTests
cd target/blog-backend
sh bin/start.sh- 前端首页:打开
frontend/index.html - 管理后台:打开
frontend/login.html(默认账号: admin / 123456)