# tech_blog **Repository Path**: eight-one/tech_blog ## Basic Information - **Project Name**: tech_blog - **Description**: 个人博客系统 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-06-12 - **Last Updated**: 2026-01-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Tech Blog 技术博客系统 ## 项目介绍 Tech Blog 是一个基于前后端分离架构的技术博客系统,支持用户注册登录、发布文章、评论、点赞、关注用户、分类管理等功能。 ## 项目结构 ``` tech_blog/ ├── frontend/ # 前端代码 └── techBlog/ # 后端代码 ``` ## 前端技术栈 ### 核心框架 - **Vue 3** - 渐进式 JavaScript 框架 - **TypeScript** - 类型安全的 JavaScript 超集 - **Vite** - 下一代前端构建工具 ### 路由与状态管理 - **Vue Router** - Vue 官方路由管理器 - **Pinia** - 新一代状态管理工具 ### UI 组件库 - **Element Plus** - 基于 Vue 3 的桌面端组件库 ### 网络请求 - **Axios** - 基于 Promise 的 HTTP 客户端 ### 其他依赖 - **@wangeditor/editor** - 富文本编辑器 - **vue3-markdown-it** - Markdown 解析器 - **crypto-js** - 加密算法库 - **dompurify** - HTML 净化库 - **v-viewer** - 图片查看器 ## 后端技术栈 ### 核心框架 - **Spring Boot 3** - Java 企业级应用开发框架 - **Java 21** - 最新 LTS 版本 Java ### 持久层 - **MyBatis Plus** - 基于 MyBatis 的增强工具 - **MySQL** - 关系型数据库 ### 安全认证 - **Spring Security** - 安全框架 - **JWT** - 基于 JSON 的认证令牌 ### 缓存 - **Redis** - 高性能键值对数据库 ### 文档 - **SpringDoc OpenAPI** - API 文档生成工具 ### 其他依赖 - **Lombok** - 简化 Java 代码的工具 - **Spring Validation** - 数据校验框架 - **Spring AOP** - 面向切面编程 ## 功能模块 ### 认证与用户管理 - 用户注册、登录 - JWT 认证 - 用户信息管理 - 用户关注功能 ### 文章管理 - 文章发布、编辑、删除 - 文章分类 - 文章点赞、收藏 - 文章评论(树形结构) ### 分类管理 - 分类创建、编辑、删除 - 分类层级关系 - 用户分类关注 ## 前端项目结构 ``` frontend/src/ ├── api/ # API 接口定义 ├── assets/ # 静态资源 ├── components/ # 公共组件 ├── pages/ # 页面组件 ├── router/ # 路由配置 ├── stores/ # 状态管理 ├── utils/ # 工具函数 ├── views/ # 视图组件 ├── App.vue # 根组件 └── main.ts # 入口文件 ``` ## 后端项目结构 ``` techBlog/src/main/java/com/volga/techBlog/ ├── common/ # 公共类 ├── config/ # 配置类 ├── controller/ # 控制器 ├── dto/ # 数据传输对象 ├── entity/ # 实体类 ├── exception/ # 异常处理 ├── mapper/ # 数据访问层 ├── security/ # 安全相关 ├── service/ # 业务逻辑层 ├── util/ # 工具类 └── TechBlogApplication.java # 启动类 ``` ## 运行方式 ### 前端 1. 进入 `frontend` 目录 2. 安装依赖:`npm install` 3. 启动开发服务器:`npm run dev` 4. 构建生产版本:`npm run build` ### 后端 1. 进入 `techBlog` 目录 2. 确保 MySQL 和 Redis 服务已启动 3. 配置 `application.yml` 中的数据库和 Redis 连接信息 4. 运行 `TechBlogApplication.java` 启动应用 5. 或使用 Maven 命令:`mvn spring-boot:run` ## API 文档 后端启动后,可通过以下地址访问 API 文档: - Swagger UI: `http://localhost:8080/swagger-ui.html` ## 数据库 ### 主要表结构 - `user` - 用户表 - `post` - 文章表 - `category` - 分类表 - `comment` - 评论表 - `like` - 点赞表 - `user_follow` - 用户关注表 - `user_category` - 用户分类关注表 - `post_category` - 文章分类关联表 ## 开发规范 ### 前端 - 使用 TypeScript 进行类型检查 - 组件命名采用 PascalCase - API 调用统一封装在 `api` 目录 - 状态管理使用 Pinia - 路由配置采用懒加载 ### 后端 - 采用 RESTful API 设计风格 - 分层架构:Controller -> Service -> Mapper - 统一异常处理 - 统一响应格式 - 使用 DTO 进行数据传输 ## 许可证 MIT License