Skip to content

Latest commit

 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hyperpost Backend

版本 构建状态 许可证 Spring Boot Java MySQL

> 一个 Hexo 风格、带后台管理系统的前后端分离博客后端系统

关联项目

后端项目简介

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 验证服务是否正常运行。


配置文件

项目已通过 .gitignoreapplication.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。


API 文档

详细的接口文档请参阅 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 许可证 开源。

About

🐱一个前后端分离的博客系统项目的后端

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages