# 基于SpringBoot的个人博客 **Repository Path**: zhao--ruiyu/simple-blog ## Basic Information - **Project Name**: 基于SpringBoot的个人博客 - **Description**: 一个基于 SpringBoot 的个人博客项目 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 17 - **Forks**: 1 - **Created**: 2021-09-08 - **Last Updated**: 2025-10-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: SpringBoot, Java ## README # 基于 SpringBoot 的个人博客系统 **如果你觉得这个项目不错,请给个 star 鼓励一下!👍** ## 项目简介 这是一个基于 SpringBoot 开发的个人博客系统,具有以下特点: 1. **RESTful 风格 API 设计**:规范、易于理解的接口设计 2. **响应式页面**:完美支持 PC 端和移动端 3. **Swagger 接口文档**:接口一目了然,方便调试 4. **详细的代码注释**:便于学习和二次开发 5. **接口幂等性校验**:基于策略模式 + Redis + 自定义注解实现 6. **技术栈全面**:前后端分离架构,适合学习全栈开发 前端使用原生 HTML/CSS/JS 开发,通过 AJAX 请求后台数据,实现前后端分离。 ### 在线预览 - **博客前台**: http://121.5.165.132/ - **博客后台**: http://121.5.165.132/back/login.html - **测试账号**: 用户名:test 密码:1111 ## 项目架构 ### 技术栈 #### 后端技术 | 技术/框架 | 版本 | 说明 | |---|---|---| | SpringBoot | 2.3.7.RELEASE | 应用基础框架 | | MyBatis-Plus | 3.4.2 | 持久层增强框架 | | Spring MVC | | Web 框架 | | Lombok | | 简化 Java 代码 | | MySQL | | 数据库 | | Redis | | 缓存、会话管理 | | Swagger | 2.9.2 | API 文档 | | Spring Boot Mail | | 邮件通知功能 | | 七牛云 SDK | 7.4.0 | 云存储服务 | | Druid | 1.2.6 | 数据库连接池 | #### 前端技术 | 技术/框架 | 说明 | |---|---| | Semantic-UI | 前端 UI 框架 | | Layer | 弹窗组件 | | jQuery | JavaScript 框架 | | Animate.css | CSS 动画库 | | Editor.md | Markdown 编辑器 | | Prism | 代码高亮 | ### 项目结构 ``` ├── src/main/java/com/zry/simpleBlog │ ├── controller # 控制器层 │ │ └── admin # 后台管理控制器 │ ├── service # 业务逻辑层 │ ├── mapper # 数据访问层 │ ├── entity # 实体类 │ ├── dto # 数据传输对象 │ ├── comment # 评论相关 │ ├── email # 邮件服务 │ └── upload # 文件上传 ├── src/main/resources │ ├── mapper # MyBatis XML 映射文件 │ ├── static # 静态资源 │ ├── pages # 前端页面 │ │ ├── p # 博客前台页面 │ │ └── back # 博客后台页面 │ ├── application.yml # 主配置文件 │ ├── application-dev.yml # 开发环境配置 │ └── application-pro.yml # 生产环境配置 ``` ### 核心功能设计 #### 1. RESTful API 设计 所有接口遵循 RESTful 规范,通过 HTTP 动词(GET, POST, PUT, DELETE)表示操作类型。结合 Swagger 文档,接口使用更加清晰明了。 #### 2. 全局统一响应 所有 API 返回统一的 JSON 格式: ```json { "code": 200, "msg": "操作成功", "data": 数据内容 } ``` #### 3. AOP 切面 - **自定义注解实现登录校验** - **操作日志记录** - **接口幂等性保证** #### 4. 安全机制 用户登录采用 MD5 双重加密 + Redis 存储会话的方式,保证系统安全性。 #### 5. 异常处理 全局统一异常处理,确保系统在出现问题时能够返回友好的错误信息。 ## 部署说明 ### 环境需求 - JDK 1.8+ - MySQL 5.7+ - Redis 5.0+ - Maven 3.6+ ### 部署步骤 1. **克隆项目到本地** 2. **配置数据库** - 创建数据库 `simpleblog` - 导入根目录下的 `SimpleBlog.sql` 文件 3. **修改配置文件** - 修改 `application-dev.yml`(开发环境)或 `application-pro.yml`(生产环境) - 配置 MySQL 数据库连接信息 - 配置 Redis 连接信息 - 配置邮箱服务(可选) - 配置七牛云存储(可选) 4. **编译打包** ```bash mvn clean package -DskipTests ``` 5. **运行项目** ```bash java -jar target/SimpleBlog2-0.0.1-SNAPSHOT.jar ``` 6. **访问项目** - 前台:http://localhost:8080/ - 后台:http://localhost:8080/back/login.html ### 注意事项 1. 本项目的认证登录、缓存等功能依赖于 Redis,请确保 Redis 服务正常运行 2. 代码需要 Lombok 插件支持,IDE 需安装 Lombok 插件 3. 登录密码经过双重 MD5 加密,可通过运行 `com.zry.simpleBlog.utils.MD5Util` 中的 main 方法获取加密后密码 ## 功能模块 ### 博客前台 - 博客文章展示 - 分类浏览 - 标签聚合 - 时间线归档 - 评论与留言 - 留言邮件通知 ### 博客后台 - 管理员登录 - 文章管理(CRUD) - 分类管理 - 标签管理 - 评论管理 - 个人信息管理 ## 预览图 ### 前台页面 ![主页](assets/%E4%B8%BB%E9%A1%B5.png) ### 文章页面 ![文章页面](assets/blogpage2.png) ### 分类页面 ![分类页面](assets/%E5%88%86%E7%B1%BB%E9%A1%B5.png) ### 标签页面 ![标签页面](assets/tagsPage.png) ### 归档页面 ![归档页面](assets/archives.png) ### 评论区 ![评论区](assets/isloginComment.png) ### 后台管理 ![后台管理](assets/%E5%90%8E%E5%8F%B0%E6%96%87%E7%AB%A0%E7%AE%A1%E7%90%86.png) ## 二次开发 本项目代码结构清晰,注释完善,非常适合进行二次开发。以下是一些建议: 1. 前端可以重构为 Vue 或 React 框架 2. 可增加更多博客功能,如文章搜索、文章推荐等 3. 可增强后台管理功能,如数据统计、访问分析等 ## 贡献指南 欢迎提交 Issues 和 Pull Requests 来共同改进这个项目。 ## 许可证 本项目采用 [MIT 许可证](LICENSE)。