Hyperpost-backend 是一个基于 SSM(Spring + Spring MVC + MyBatis) 架构、由 Spring Boot 整合的个人博客后端系统。提供完整的 RESTful API,支持博客内容全流程管理:
- 📝 文章管理 — 文章的增删改查、分页浏览、全文搜索,支持 Markdown 正文、封面图、分类与标签关联
- 🏷️ 分类与标签 — 灵活的文章归类方式,支持按分类/标签交叉筛选
- 💬 嵌套评论 — 多级回复评论系统,读者互动更自然
- 🔐 JWT 认证 — 基于 Token 的登录/注册,配合角色权限控制(管理员 / 普通用户)
- 🖼️ 图片上传 — 本地文件存储,UUID 重命名 + 按日期分目录
- 📊 后台管理 — 仪表盘、文章管理列表、用户管理、文章上下架审核
- 🔍 全文搜索 — 按文章标题或内容搜索
| 层次 | 技术 |
|---|---|
| 框架 | Spring Boot 4.0.6 / Spring MVC |
| ORM | MyBatis-Plus 3.5.15 + Druid 连接池 |
| 数据库 | MySQL 8.0 |
| 认证 | JWT(java-jwt 4.6.0)+ BCrypt 加密 |
| 接口文档 | Knife4j(Swagger / OpenAPI 3) |
| 构建工具 | Maven |
| 前端 | Vue 3 + ElementUI(独立仓库) |
- JDK 17+
- Maven 3.6+
- MySQL 8.0+
- Git
# 1. 克隆仓库
git clone https://github.com/QzKevin/Hyperpost-backend.git
cd Hyperpost-backend
# 2. 导入数据库
mysql -u root -p < blog_db.sql
# 3. 配置数据库连接
# 编辑 src/main/resources/application.properties,填入实际的数据库配置
# 4. 编译运行
mvn clean package -DskipTests
java -jar target/hyperpost-1.0-SNAPSHOT.jar启动后访问 http://localhost:8080/hello 验证服务是否正常运行。
项目已通过 .gitignore 将 application.properties 排除在版本控制之外,以防敏感信息泄露。请参照以下模板创建你的配置文件:
# ==========================================
# Hyperpost Backend 配置模板
# ==========================================
spring.application.name=hyperpost
# ---------- 文件上传 ----------
spring.servlet.multipart.max-file-size=10MB
# ---------- 数据源(Druid + MySQL) ----------
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/blog_db?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
spring.datasource.username=你的数据库用户名
spring.datasource.password=你的数据库密码
# ---------- MyBatis-Plus 日志 ----------
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
# ---------- Jackson 序列化 ----------
spring.jackson.property-naming-strategy=SNAKE_CASE
# ---------- 接口文档 (Knife4j / Swagger) ----------
springdoc.api-docs.path=/v3/api-docs
springdoc.swagger-ui.enabled=true
springdoc.swagger-ui.path=/swagger-ui.html
⚠️ 请将你的数据库用户名和你的数据库密码替换为实际值。切勿将真实凭据提交到 Git。
详细的接口文档请参阅 interface.md,包含所有端点的请求方式、参数说明及响应示例。
| 模块 | 基础路径 | 说明 |
|---|---|---|
| 认证 | /auth/* |
注册、登录(公开接口) |
| 用户 | /user/* |
个人信息管理(需登录) |
| 文章 | /article/* |
增删改查、搜索、标签关联 |
| 分类 | /category/* |
分类增删改查 |
| 评论 | /comment/* |
多级嵌套评论 |
| 标签 | /tag/* |
标签增删改查 |
| 后台管理 | /admin/* |
仪表盘、文章/用户管理(管理员) |
| 上传 | /upload/* |
图片文件上传 |
| 公开接口 | /public/* |
面向访客的只读接口 |
大部分接口需要在请求头中携带 Bearer Token:
Authorization: Bearer <你的JWT令牌>
通过 POST /auth/login 获取令牌,有效期 12 小时。
hyperpost-backend/
├── src/
│ ├── main/
│ │ ├── java/top/smatrix/
│ │ │ ├── controller/ # REST 控制器
│ │ │ ├── service/ # 业务逻辑层
│ │ │ ├── mapper/ # MyBatis-Plus 映射器
│ │ │ ├── entity/ # 数据实体
│ │ │ ├── dto/ # 数据传输对象
│ │ │ ├── config/ # 配置类
│ │ │ ├── interceptor/ # JWT 登录拦截器
│ │ │ ├── exception/ # 全局异常处理
│ │ │ ├── utils/ # 工具类(JWT 等)
│ │ │ └── common/ # 统一响应封装
│ │ └── resources/
│ │ ├── application.properties # (已在 .gitignore 中排除)
│ │ ├── static/ # 静态资源
│ │ └── templates/ # 模板文件
│ └── test/
├── blog_db.sql # 数据库建表脚本 + 示例数据
├── interface.md # API 接口文档
├── pom.xml # Maven 构建文件
├── next.md # 开发计划与待办
└── .gitignore
所有核心模块已开发完成:
- 认证与用户管理(注册、登录、信息修改、密码变更)
- 文章管理(分页、搜索、分类/标签筛选、状态管理)
- 分类管理
- 标签系统(文章-标签关联)
- 多级嵌套评论
- 后台管理(仪表盘、文章/用户管理、审核上下架)
本项目基于 MIT 许可证 开源。