Skip to content

programeGreenhand/BlogSystem

Repository files navigation

BlogSystem

Java Spring Boot Vue License

基于 Spring Cloud + Vue 3 的微服务博客系统

English · 中文

✨ 特性

后端架构

  • 微服务架构 :用户服务、动态服务、消息服务、网关服务
  • 认证授权 :JWT Token + Redis 实现单点登录
  • 实时通信 :WebSocket + RabbitMQ 实现消息推送
  • 数据库 :MySQL + Redis 缓存
  • API 文档 :集成 Swagger/OpenAPI 3

功能模块

模块 功能 用户 注册、登录、个人资料管理 好友 关注、粉丝、黑名单 动态 发布、点赞、评论、搜索 通知 实时推送、已读未读 管理后台 用户管理、动态管理、数据统计

前端特性

  • Vue 3 + Composition API
  • Vite 构建工具
  • Element Plus UI
  • Pinia 状态管理
  • 响应式布局

🏗️ 技术栈

后端

技术 说明 Java 17 编程语言 Spring Boot 3 基础框架 Spring Cloud Gateway API 网关 MyBatis-Plus ORM 框架 MySQL 主数据库 Redis 缓存、Session 存储 RabbitMQ 消息队列 JWT 身份认证

前端

技术 说明 Vue 3 前端框架 Vite 构建工具 Element Plus UI 组件库 Pinia 状态管理 Axios HTTP 客户端 Vue Router 路由管理 dayjs 时间处理

📁 项目结构

Blog/
├── blog-frontend/          # 前端项目
│   ├── src/
│   │   ├── api/            # API 接口
│   │   ├── components/     # 公共组件
│   │   ├── router/         # 路由配置
│   │   ├── store/          # 状态管理
│   │   ├── utils/          # 工具函数
│   │   └── views/          # 页面组件
│   └── vite.config.js
│
└── demo/                   # 后端项目
    ├── blog-common/        # 公共模块
    │   ├── entity/         # 实体类
    │   ├── dto/            # 数据传输对象
    │   ├── exception/      # 异常处理
    │   └── utils/          # 工具类
    │
    ├── blog-gateway/       # 网关服务 (8080)
    ├── blog-user/          # 用户服务 (8081)
    ├── blog-post/          # 动态服务 (8082)
    └── blog-message/       # 消息服务 (8083)

🚀 快速开始

环境要求

  • JDK 17+
  • Node.js 16+
  • MySQL 8.0+
  • Redis 6.0+
  • RabbitMQ 3.x

后端启动

cd demo

# 编译
mvn clean package -DskipTests

# 启动服务(按顺序)
java -jar blog-gateway/target/blog-gateway.jar
java -jar blog-user/target/blog-user.jar
java -jar blog-post/target/blog-post.jar
java -jar blog-message/target/blog-message.jar

前端启动

cd blog-frontend

# 安装依赖
npm install

# 启动开发服务器
npm run dev

访问地址

服务 地址 前端首页 http://localhost:5173 API 网关 http://localhost:8080 Swagger 文档 http://localhost:8080/swagger-ui.html

📐 API 设计

用户认证

POST /api/auth/login     # 用户登录
POST /api/auth/register  # 用户注册

动态

GET    /api/post/list           # 获取动态列表
POST   /api/post                # 发布动态
DELETE /api/post/{id}           # 删除动态
POST   /api/post/{id}/like      # 点赞
POST   /api/post/{id}/comment   # 评论

好友

GET  /api/friend/list           # 好友列表
POST /api/friend/request        # 发送好友请求
PUT  /api/friend/accept/{id}    # 接受请求
PUT  /api/friend/reject/{id}    # 拒绝请求

消息通知

GET    /api/notification/list    # 通知列表
PUT    /api/notification/read   # 标记已读
WS     /ws/notification          # WebSocket

🔧 配置说明

数据库

-- 创建数据库
CREATE DATABASE blog DEFAULT CHARACTER SET utf8mb4;

-- 初始化表结构(运行 sql/init.sql)

Redis

# 确保 Redis 服务运行在 localhost:6379

环境变量

# 后端
export MYSQL_HOST=localhost
export MYSQL_PORT=3307
export REDIS_HOST=localhost

# 前端
VITE_API_BASE_URL=http://localhost:8080

📊 性能优化

项目已实现以下优化方案:

  • ✅ 数据库索引优化(复合索引)
  • ✅ MySQL 全文索引搜索
  • ✅ HikariCP 连接池调优
  • ✅ Redis 缓存优化

📝 License

本项目基于 MIT License 开源。

👤 作者

programeGreenhand

  • GitHub: @programeGreenhand ⭐ 如果这个项目对你有帮助,请点个 Star!

About

这是一个博客微服务系统,基本功能完善

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors