Skip to content

Latest commit

 

History

29 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SnowBlog Java 后端

一个基于 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 密钥和过期时间
jwt.secret=SnowDreamXUE
jwt.expiration=86400000

服务配置

# 服务端口号
server.port=9876
# 用户配置
blog.user=snow

🔗 相关项目

本项目是 SnowBlog 博客系统的一部分,完整系统包括:

📝 API 接口

项目提供以下 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!

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages