一个基于 Spring Boot 构建的现代化个人博客后端 API 系统
SnowBlog Java 是一个功能完整的个人博客后端服务,采用 Spring Boot + MyBatis Plus 技术栈构建,提供了完整的 RESTful API 接口。本项目是 SnowBlog 博客系统的核心后端服务。
- 文章发布、编辑、删除
- 文章分页查询(支持标题搜索)
- 文章置顶功能
- 文章归档按年月分组
- 文章浏览量统计
- 文章字数统计和阅读时间估算
- 文章分类创建和管理
- 标签创建和管理
- 分类/标签下文章列表查询
- 分类/标签统计功能
- 友链添加、编辑、删除
- 友链状态管理
- 用户登录验证
- JWT Token 认证机制
- 用户信息管理
- 权限拦截器
- RESTful API 设计
- JWT 安全认证
- 全局异常处理
- 统一响应格式
- 跨域配置支持
- 自定义注解和切面
- Spring Boot 2.6.6 - 主框架
- Spring Web - Web 层支持
- Spring AOP - 切面编程
- Spring Validation - 参数验证
- MySQL - 关系型数据库
- MyBatis Plus 3.5.1 - ORM 框架
- MySQL Connector - 数据库驱动
- Java JWT 4.5.0 - JWT Token 生成和验证
- Lombok - 简化 Java 代码
- FastJSON 1.2.80 - JSON 处理
- Joda-Time 2.10.14 - 日期时间处理
- Apache Commons Codec - 编码解码工具
- Java 17 - 开发语言
- Maven - 项目构建管理
SnowBlog-java/
├── src/
│ ├── main/
│ │ ├── java/com/snow/blog/
│ │ │ ├── SnowBlogApplication.java # 启动类
│ │ │ ├── annotation/ # 自定义注解
│ │ │ │ └── GlobalInterceptor.java
│ │ │ ├── aspect/ # 切面处理
│ │ │ │ └── GlobalOperationAspect.java
│ │ │ ├── config/ # 配置类
│ │ │ │ ├── CorsConfig.java # 跨域配置
│ │ │ │ └── MybatisPlusConfig.java # MyBatis配置
│ │ │ ├── controller/ # 控制器层
│ │ │ │ ├── ArticlesController.java
│ │ │ │ ├── CategoriesController.java
│ │ │ │ ├── FriendLinksController.java
│ │ │ │ ├── TagsController.java
│ │ │ │ └── UserController.java
│ │ │ ├── dto/ # 数据传输对象
│ │ │ │ ├── ArticlesArchiveDTO.java
│ │ │ │ ├── ArticlesDTO.java
│ │ │ │ ├── ArticlesListDTO.java
│ │ │ │ ├── CategoriesDetailDTO.java
│ │ │ │ ├── CategoryDTO.java
│ │ │ │ ├── LoginInfoDTO.java
│ │ │ │ ├── TagsDetailDTO.java
│ │ │ │ └── TagsDTO.java
│ │ │ ├── entity/ # 实体类
│ │ │ │ ├── Articles.java
│ │ │ │ ├── ArticleCategories.java
│ │ │ │ ├── ArticleTags.java
│ │ │ │ ├── Categories.java
│ │ │ │ ├── Tags.java
│ │ │ │ ├── FriendLinks.java
│ │ │ │ └── User.java
│ │ │ ├── exception/ # 异常处理
│ │ │ ├── mappers/ # 数据访问层
│ │ │ ├── service/ # 业务逻辑层
│ │ │ └── utils/ # 工具类
│ │ └── resources/
│ │ └── application.properties # 配置文件
│ └── test/ # 测试文件
├── pom.xml # Maven 配置
└── README.md # 项目说明
- Java 17+
- MySQL 5.7+
- Maven 3.6+
# 编译项目
mvn clean compile
# 安装依赖
mvn clean install# 设置环境变量
export DB_NAME=your_database_name
export DB_USERNAME=your_username
export DB_PASSWORD=your_password# 启动开发服务器
mvn spring-boot:run访问 http://localhost:9876 查看 API 服务
# 构建 JAR 包
mvn clean package
# 运行 JAR 包
java -jar target/SnowBlog-0.0.1-SNAPSHOT.jar# 数据库连接配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/${DB_NAME}?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username=${DB_USERNAME}
spring.datasource.password=${DB_PASSWORD}# JWT 密钥和过期时间
jwt.secret=SnowDreamXUE
jwt.expiration=86400000# 服务端口号
server.port=9876
# 用户配置
blog.user=snow本项目是 SnowBlog 博客系统的一部分,完整系统包括:
- SnowBlog Java (当前项目) - 后端 API 服务
- SnowBlog Back - 后台管理系统
- SnowBlog Vue - 前台展示系统
项目提供以下 RESTful API 接口:
GET /articles/list- 分页查询文章列表GET /articles/listAll- 获取所有文章GET /articles/{id}- 获取文章详情GET /articles/archive- 获取文章归档
GET /categories/list- 获取所有分类GET /categories/{id}- 获取分类详情及文章列表GET /tags/list- 获取所有标签GET /tags/{id}- 获取标签详情及文章列表
GET /friendLinks/list- 获取友情链接列表
GET /user/login- 用户登录GET /user/info- 获取用户信息
- 🛡️ JWT 安全认证机制
- 📊 统一响应格式设计
- 🔍 灵活的分页查询
- 🏷️ 完整的分类标签系统
- 📈 文章统计和归档功能
- 🌐 跨域配置支持
欢迎提交 Issue 和 Pull Request 来改进这个项目。
本项目基于 MIT 协议开源,详情请查看 LICENSE 文件。
SnowDreamXUE
⭐ 如果这个项目对你有帮助,欢迎给个 Star!