# Blog
**Repository Path**: code00001/blog
## Basic Information
- **Project Name**: Blog
- **Description**: MyBlog 是一个极简洁,基于 RuoYi-Vue 框架开发的个人博客管理系统,提供完整的文章管理、分类管理、标签管理和评论管理功能。系统采用前后端分离架构,后端基于 Spring Boot,前端基于 Vue.js + Element UI,支持多用户权限管理。
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2026-02-25
- **Last Updated**: 2026-02-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# MyBlog - 个人博客管理系统
## 项目简介
MyBlog 是一个基于 RuoYi-Vue 框架开发的个人博客管理系统,提供完整的文章管理、分类管理、标签管理和评论管理功能。系统采用前后端分离架构,后端基于 Spring Boot,前端基于 Vue.js + Element UI,支持多用户权限管理。
### 主要特性
- **文章管理**:支持文章发布、编辑、删除、草稿、置顶、推荐等功能
- **分类管理**:支持树形分类结构,方便文章分类管理
- **标签管理**:灵活的标签系统,支持多标签关联
- **评论管理**:完整的评论系统,支持评论审核和管理
- **友情链接**:友情链接管理功能
- **权限管理**:基于角色的权限控制,细粒度的菜单和按钮权限
- **代码生成**:一键生成前后端代码,提高开发效率
## 技术栈
### 后端技术
| 技术 | 版本 | 说明 |
| --- | --- | --- |
| Spring Boot | 2.5.15 | 应用开发框架 |
| Spring Security | 5.7.14 | 安全框架 |
| MyBatis | 3.5.x | ORM 框架 |
| MySQL | 5.7+ | 数据库 |
| Redis | 6.0+ | 缓存数据库 |
| JWT | 0.9.1 | Token 生成与解析 |
| Druid | 1.2.27 | 数据库连接池 |
| FastJson | 2.0.60 | JSON 处理 |
| Swagger | 3.0.0 | API 文档生成 |
| PageHelper | 1.4.7 | MyBatis 分页插件 |
### 前端技术
| 技术 | 版本 | 说明 |
| --- | --- | --- |
| Vue.js | 2.6.12 | 渐进式 JavaScript 框架 |
| Element UI | 2.15.14 | UI 组件库 |
| Vue Router | 3.4.9 | 路由管理器 |
| Vuex | 3.6.0 | 状态管理模式 |
| Axios | 0.28.1 | HTTP 请求库 |
| ECharts | 5.4.0 | 数据可视化图表库 |
| Quill | 2.0.2 | 富文本编辑器 |
## 项目架构
### 模块说明
```
MyBlog/
├── blog-admin/ # 后台管理入口模块
│ └── Web 服务入口,包含 Controller 层
├── blog-framework/ # 核心框架模块
│ └── 包含安全配置、日志、缓存等核心功能
├── blog-system/ # 系统业务模块
│ ├── domain/ # 实体类
│ ├── mapper/ # Mapper 接口
│ └── service/ # 业务逻辑层
├── blog-common/ # 通用工具模块
│ └── 工具类、注解、常量等
├── blog-generator/ # 代码生成模块
│ └── 提供代码生成器功能
├── blog-quartz/ # 定时任务模块
│ └── 定时任务调度管理
├── blog-ui/ # 前端 UI
│ ├── api/ # API 接口
│ ├── components/ # 公共组件
│ ├── layout/ # 布局组件
│ ├── router/ # 路由配置
│ ├── store/ # Vuex 状态管理
│ └── views/ # 页面视图
└── sql/ # 数据库脚本
├── blog_tables.sql # 博客核心表
├── blog_menu.sql # 菜单配置
└── blog_comment_table.sql # 评论表
```
### 数据库设计
系统包含以下核心表:
- **blog_article**:文章表,存储文章标题、内容、摘要、封面图片等信息
- **blog_category**:文章分类表,支持树形结构
- **blog_tag**:文章标签表
- **blog_article_tag**:文章标签关联表,实现多对多关系
- **blog_comment**:评论表,存储文章评论
- **blog_link**:友情链接表
## 功能特性
### 已实现功能
#### 文章管理
- ✅ 文章列表查询(支持标题、分类、状态筛选)
- ✅ 新增/编辑/删除文章
- ✅ 文章发布(草稿转发布)
- ✅ 浏览量统计
- ✅ 置顶/推荐设置
- ✅ 文章封面上传
#### 分类管理
- ✅ 分类列表查询
- ✅ 新增/编辑/删除分类
- ✅ 树形结构支持
- ✅ 显示顺序管理
#### 标签管理
- ✅ 标签列表查询
- ✅ 新增/编辑/删除标签
- ✅ 文章数量统计
#### 评论管理
- ✅ 评论列表查询
- ✅ 评论审核/删除
- ✅ 评论状态管理
#### 友情链接管理
- ✅ 链接列表查询
- ✅ 新增/编辑/删除链接
- ✅ 显示顺序管理
#### 系统功能(继承自 RuoYi)
- ✅ 用户管理
- ✅ 角色管理
- ✅ 菜单管理
- ✅ 部门管理
- ✅ 岗位管理
- ✅ 字典管理
- ✅ 参数配置
- ✅ 通知公告
- ✅ 日志管理
- ✅ 在线用户
- ✅ 定时任务
- ✅ 代码生成
- ✅ 系统监控
- ✅ 缓存监控
### 待完善功能
- 📋 文章富文本编辑器增强
- 📋 前台展示页面开发
- 📋 文章搜索功能
- 📋 文章归档功能
- 📋 统计分析(热门文章、访问量统计)
- 📋 SEO 优化
- 📋 社交分享功能
- 📋 RSS 订阅
## 系统演示图
## 快速开始
### 环境要求
- JDK 1.8+
- MySQL 5.7+
- Redis 6.0+
- Node.js 12+
- Maven 3.6+
### 后端启动
1. **导入数据库**
```bash
# 创建数据库
CREATE DATABASE blog DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
# 导入 SQL 脚本
mysql -u root -p blog < sql/ry_20250522.sql
mysql -u root -p blog < sql/blog_tables.sql
```
2. **修改数据库配置**
编辑 `blog-admin/src/main/resources/application-druid.yml`:
```yaml
spring:
datasource:
druid:
master:
url: jdbc:mysql://localhost:3306/blog?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: your_password
```
3. **修改 Redis 配置**
编辑 `blog-admin/src/main/resources/application.yml`:
```yaml
spring:
redis:
host: localhost
port: 6379
password:
```
4. **启动后端服务**
```bash
# 进入项目目录
cd MyBlog
# Maven 编译打包
mvn clean install
# 启动服务(方式一)
java -jar blog-admin/target/blog-admin.jar
# 启动服务(方式二)
./ry.sh
```
后端默认运行在 `http://localhost:8080`
### 前端启动
1. **安装依赖**
```bash
cd blog-ui
npm install
```
2. **启动开发服务器**
```bash
npm run dev
```
前端默认运行在 `http://localhost:80`
3. **生产环境构建**
```bash
npm run build:prod
```
### 访问系统
- 后端接口文档:http://localhost:8080/swagger-ui/index.html
- 前端管理页面:http://localhost:80
- 默认账号:admin / admin123
## API 文档
### 文章相关接口
| 接口路径 | 请求方式 | 说明 |
| --- | --- | --- |
| /blog/article/list | GET | 查询文章列表 |
| /blog/article/{articleId} | GET | 获取文章详情 |
| /blog/article | POST | 新增文章 |
| /blog/article | PUT | 修改文章 |
| /blog/article/{articleIds} | DELETE | 删除文章 |
| /blog/article/publish/{articleId} | PUT | 发布文章 |
| /blog/article/view/{articleId} | PUT | 增加浏览量 |
### 分类相关接口
| 接口路径 | 请求方式 | 说明 |
| --- | --- | --- |
| /blog/category/list | GET | 查询分类列表 |
| /blog/category/{categoryId} | GET | 获取分类详情 |
| /blog/category | POST | 新增分类 |
| /blog/category | PUT | 修改分类 |
| /blog/category/{categoryIds} | DELETE | 删除分类 |
### 标签相关接口
| 接口路径 | 请求方式 | 说明 |
| --- | --- | --- |
| /blog/tag/list | GET | 查询标签列表 |
| /blog/tag/{tagId} | GET | 获取标签详情 |
| /blog/tag/article/{articleId} | GET | 根据文章ID查询标签 |
| /blog/tag | POST | 新增标签 |
| /blog/tag | PUT | 修改标签 |
| /blog/tag/{tagIds} | DELETE | 删除标签 |
### 评论相关接口
| 接口路径 | 请求方式 | 说明 |
| --- | --- | --- |
| /blog/comment/list | GET | 查询评论列表 |
| /blog/comment/{commentId} | GET | 获取评论详情 |
| /blog/comment | PUT | 修改评论状态 |
| /blog/comment/{commentIds} | DELETE | 删除评论 |
完整 API 文档请访问 Swagger:http://localhost:8080/swagger-ui/index.html
## 项目结构
### 后端目录结构
```
blog-system/src/main/java/com/blog/blog/
├── domain/ # 实体类
│ ├── BlogArticle.java # 文章实体
│ ├── BlogCategory.java # 分类实体
│ ├── BlogTag.java # 标签实体
│ ├── BlogArticleTag.java # 文章标签关联
│ ├── BlogComment.java # 评论实体
│ └── BlogLink.java # 友情链接实体
├── mapper/ # Mapper 接口
│ ├── BlogArticleMapper.java
│ ├── BlogCategoryMapper.java
│ ├── BlogTagMapper.java
│ ├── BlogArticleTagMapper.java
│ ├── BlogCommentMapper.java
│ └── BlogLinkMapper.java
└── service/ # 业务逻辑层
├── IBlogArticleService.java
├── IBlogCategoryService.java
├── IBlogTagService.java
├── IBlogCommentService.java
├── IBlogLinkService.java
└── impl/ # 业务实现类
```
### 前端目录结构
```
blog-ui/src/
├── api/blog/ # 博客相关 API
│ ├── article.js # 文章 API
│ ├── category.js # 分类 API
│ ├── tag.js # 标签 API
│ ├── comment.js # 评论 API
│ └── link.js # 友情链接 API
└── views/blog/ # 博客页面
├── article/index.vue # 文章管理页面
├── category/index.vue # 分类管理页面
├── tag/index.vue # 标签管理页面
├── comment/index.vue # 评论管理页面
└── link/index.vue # 友情链接管理页面
```
## 开发指南
### 新增业务模块
1. **设计数据库表**
- 在 `sql/` 目录下创建表结构 SQL 文件
- 执行 SQL 创建表
2. **使用代码生成器**
- 访问 系统工具 > 代码生成
- 导入数据库表
- 生成代码(包含 Entity、Mapper、Service、Controller、Vue 页面)
- 将生成的代码复制到对应目录
3. **配置菜单权限**
- 访问 系统管理 > 菜单管理
- 新增菜单
- 配置权限标识
### 开发规范
- **后端规范**
- 遵循 RESTful API 设计规范
- Controller 层负责参数校验和请求转发
- Service 层负责业务逻辑处理
- Mapper 层负责数据库操作
- 使用统一的异常处理机制
- 使用统一的返回结果封装
- **前端规范**
- 遵循 Vue 官方风格指南
- 组件采用 PascalCase 命名
- API 接口统一管理
- 使用 Vuex 管理全局状态
- 路由采用懒加载方式
## 部署说明
### Docker 部署(推荐)
1. **构建镜像**
```bash
# 构建后端镜像
docker build -t myblog-admin:latest .
# 构建前端镜像
cd blog-ui
docker build -t myblog-ui:latest .
```
2. **使用 Docker Compose**
```bash
docker-compose up -d
```
### 传统部署
1. **后端部署**
```bash
# 打包
mvn clean package
# 运行
java -jar blog-admin/target/blog-admin.jar --spring.profiles.active=prod
```
2. **前端部署**
```bash
# 构建
npm run build:prod
# 部署到 Nginx
cp -r dist/* /usr/share/nginx/html/
```
3. **Nginx 配置**
```nginx
server {
listen 80;
server_name your-domain.com;
location / {
root /usr/share/nginx/html;
index index.html;
try_files $uri $uri/ /index.html;
}
location /prod-api/ {
proxy_pass http://localhost:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
```
## 常见问题
### 1. 后端启动失败
- 检查 MySQL 和 Redis 是否启动
- 检查数据库配置是否正确
- 检查端口 8080 是否被占用
### 2. 前端无法访问后端接口
- 检查后端是否正常启动
- 检查前端代理配置 `vue.config.js`
- 检查浏览器控制台是否有跨域错误
### 3. 登录失败
- 检查 Redis 是否启动
- 检查验证码是否正确
- 检查用户名密码是否正确
## 更新日志
### v3.9.1 (2026-02-13)
- 初始化博客系统
- 完成文章、分类、标签、评论、友情链接管理功能
- 集成 RuoYi-Vue 框架
## 技术支持
- 项目地址:[GitHub](https://github.com)
- 问题反馈:[Issues](https://github.com/issues)
- 基础框架:[RuoYi-Vue](http://doc.ruoyi.vip)
## 许可证
本项目基于 MIT 协议开源,仅供学习和研究使用。
## 致谢
感谢 [RuoYi-Vue](http://ruoyi.vip) 提供的优秀基础框架。
## 更多信息
> _请查看微信公众号:_
> - 公众号:V5codings
>
> 
> - 公众号:若依框架教程
>
> 