# WBLOG-Server **Repository Path**: wisterialee/wblog-server ## Basic Information - **Project Name**: WBLOG-Server - **Description**: WBLOG是一个简易的个人博客,基于若依二次开发,内置文章、图库、留言、邮箱注册、站点配置全套博客业务,开放匿名浏览接口,配套文件上传与数据统计能力,自带完整数据库脚本与接口文档。WBLOG-Server 是WBLOG的后端。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-07-17 - **Last Updated**: 2026-09-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java, SpringBoot, MyBatis, MySQL, Spring-MVC ## README

WBLOG Logo

WBLOG-Server

Wisteria Blog · 一个简易的个人博客系统

个人博客系统后端 · 基于 若依 RuoYi-Vue v3.8.9 二次开发

中文 · English

--- ## 写在前面 > 本项目为**个人学习实践作品**,非商业产品,亦非生产级方案。代码以「能跑、能用、能学」为目标,瑕疵在所难免,**不喜勿喷,欢迎交流 **。 这是一个**学生时期的练手项目**。 在校期间学完 JavaWeb 之后,闲着没事想折腾——当时有自己的服务器,便想着能不能自己搭一个博客玩玩。于是就有了 **WBLOG(Wisteria Blog,紫藤博客)**。 说实话,当时写代码更多是**为了学习**:前后端分离怎么搭、权限怎么管、邮件怎么发……能跑起来就算胜利。至于 BUG、不合理的设计、粗糙的细节,现在回头看比比皆是,毕竟经验有限,很多地方都是边查文档边硬啃出来的。毕业后抽空整理了一下,心血来潮放出来,图个记录,也图个分享。 邮箱验证码注册是我**第一次完整实现**的功能,边学边写,邮件发送、验证码校验等环节可能仍不完善,使用时还请见谅。 > **特别说明:** 本项目基于 **[若依(RuoYi)](https://gitee.com/y_project/RuoYi-Vue)** 前后端分离框架修改而来。若依提供了完善的权限管理、JWT > 认证、代码生成、系统监控等基础能力,是本项目的坚实底座。向若依作者及社区致以诚挚的感谢! --- ## 项目简介 WBLOG-Server 是 WBLOG 博客系统的**后端服务**,基于 Spring Boot + MyBatis + Spring Security + JWT 构建,与 WBLOG-Front 前端配套使用。 在若依框架的基础上,新增了 5 个自定义业务模块,覆盖博客内容管理、图库、留言板、站点配置、邮箱验证码等完整博客能力。大量前台只读接口通过 `@Anonymous` 注解开放,访客无需登录即可浏览博客内容。 - 默认服务端口:**9191** - 数据库:**MySQL**(库名 `wblog`) - 文件存储:本地磁盘(可配置)
名称 Gitee Github
WBLOG-Server https://gitee.com/wisterialee/wblog-server https://github.com/Wisteria0712/WBLOG-Server
WBLOG-Front https://gitee.com/wisterialee/wblog-front https://github.com/Wisteria0712/WBLOG-Front
--- ## 系统功能 ### 博客业务功能(自定义模块) #### 内容管理(wblog-cms) | 功能 | API 前缀 | 说明 | |----------|-------------------------|----------------------------------------------------------------------| | **文章管理** | `/cms/blogArticle` | 文章 CRUD;支持 HTML + Markdown 双格式存储;自动统计字数;阅读量统计;标题模糊搜索;原创/转载、置顶推荐、发布状态 | | **分类管理** | `/cms/blogClassify` | 文章分类维护,含封面与主题色 | | **专栏管理** | `/cms/blogColumn` | 专栏信息维护 | | **标签管理** | `/cms/blogTags` | 标签名称与颜色配置 | | **随笔管理** | `/cms/blogEssay` | 短内容随笔 CRUD | | **公告管理** | `/cms/blogAnnouncement` | 前台公告栏内容,支持优先级 | | **友链管理** | `/cms/blogFriendLinks` | 友情链接维护 | #### 图库管理(wblog-gallery) | 功能 | API 前缀 | 说明 | |----------|------------------------------|----------------| | **相册管理** | `/gallery/blogGalleryAlbum` | 相册 CRUD | | **图片管理** | `/gallery/blogGalleryImages` | 相册内图片管理,外键级联删除 | #### 站点配置(wblog-config) | 功能 | API 前缀 | 说明 | |----------|----------------------|-------------------------------------| | **全局配置** | `/config/blogConfig` | 站点名称、头像、格言、备案信息;随笔/图库/友链/留言板等功能模块开关 | #### 留言板(wblog-guestbook) | 功能 | API 前缀 | 说明 | |----------|----------------------------|---------------------------------------------------| | **留言管理** | `/guestbook/blogGuestbook` | 留言 CRUD;`parent_id` 嵌套回复;留言总数统计;普通用户留言待审核,管理员即时通过 | > 说明:系统未单独实现「文章评论」模块,用户互动统一通过留言板完成。 #### 邮箱验证码(wblog-email) | 功能 | API 前缀 | 说明 | |-----------|---------------------------------------|----------------------------------| | **验证码记录** | `/email/blogEmailCodes` | 验证码发送记录管理(管理端) | | **发送验证码** | `POST /system/user/getEmailCheckCode` | 注册时发送 6 位邮箱验证码(15 分钟有效,60 秒频率限制) | | **用户注册** | `POST /register` | 账号 + 邮箱 + 邮箱验证码 + 图形验证码注册 | **邮箱注册流程:** 1. 前端调用 `getEmailCheckCode` 发送验证码至邮箱(FreeMarker HTML 邮件模板) 2. 用户填写注册信息,提交至 `/register` 3. 后端校验图形验证码 → 邮箱验证码 → 写入 `sys_user` 4. 注册成功后验证码标记失效 #### 用户扩展 | 功能 | 说明 | |----------|-----------------------------------------------------| | **用户统计** | `GET /system/user/getTotalUserCount` 获取注册用户总数 | | **账号注销** | `POST /system/user/delId4User` 物理删除用户,留言昵称改为「账号已注销」 | | **资料同步** | 修改昵称时同步更新留言板中的用户昵称 | #### 文件服务 | 功能 | API | 说明 | |------------|------------------------|-------------------------------------| | **单文件上传** | `POST /common/upload` | 图片/文件上传,返回 `/profile/upload/...` 路径 | | **多文件上传** | `POST /common/uploads` | 批量上传 | | **静态资源访问** | `GET /profile/**` | 匿名访问已上传文件 | #### 站点统计 API | 接口 | 说明 | |-------------------------------------------------------|---------| | `GET /cms/blogArticle/getTotalWords` | 全站文章总字数 | | `GET /cms/blogArticle/getTotalReading` | 全站总阅读量 | | `GET /system/user/getTotalUserCount` | 注册用户总数 | | `GET /guestbook/blogGuestbook/getTotalGuestbookCount` | 留言总数 | ### 若依内置功能(简要) 后端同时保留了若依框架的标准管理能力: - **用户 / 角色 / 菜单 / 部门 / 岗位 / 字典 / 参数** 管理 - **通知公告、操作日志、登录日志、在线用户** 监控 - **定时任务** 调度(Quartz) - **代码生成器** 一键生成前后端 CRUD 代码 - **系统接口** Swagger 3 自动文档 - **服务监控、缓存监控、连接池监控**(Druid) --- ## 技术栈 | 类别 | 技术 | 版本 | |--------|-------------------------------------|--------| | 语言 | Java | 1.8 | | 基础框架 | Spring Boot | 2.5.15 | | 安全框架 | Spring Security | 5.7.12 | | ORM | MyBatis + PageHelper | 1.4.7 | | 数据库 | MySQL | 8.0+ | | 连接池 | Druid | 1.2.23 | | 缓存 | Redis(Lettuce) | — | | 认证 | JWT(jjwt) | 0.9.1 | | API 文档 | Swagger 3(Springfox) | 3.0.0 | | JSON | Fastjson2 | 2.0.53 | | 验证码 | Kaptcha | 2.3.3 | | 邮件 | Spring Mail + FreeMarker | — | | 工具 | Apache POI、Commons IO、Velocity、OSHI | — | --- ## 项目结构 ``` WBLOG-Server/ ├── wblog-admin/ # Web 入口,启动类,聚合所有模块(端口 9191) ├── wblog-framework/ # 核心框架:Security、JWT、AOP、数据源 ├── wblog-system/ # 系统管理 + 博客用户扩展 ├── wblog-common/ # 通用工具、注解、基础实体 ├── wblog-cms/ # ★ 内容管理(文章/分类/标签/专栏/随笔/友链/公告) ├── wblog-gallery/ # ★ 图库(相册/图片) ├── wblog-config/ # ★ 博客全局配置 ├── wblog-guestbook/ # ★ 留言板 ├── wblog-email/ # ★ 邮箱验证码 ├── wblog-quartz/ # 定时任务(若依默认) ├── wblog-generator/ # 代码生成器(若依默认) ├── sql/ # 数据库脚本(wblog.sql) └── pom.xml ``` ### 数据库表(博客业务) | 表名 | 说明 | |---------------------|--------------------------------------------| | `blog_article` | 文章(HTML + Markdown 双存储、阅读量、字数、标签/分类/专栏 ID) | | `blog_classify` | 分类 | | `blog_tag` | 标签 | | `blog_column` | 专栏 | | `blog_essay` | 随笔 | | `blog_friend_links` | 友情链接 | | `blog_announcement` | 公告 | | `blog_album` | 相册 | | `blog_images` | 相册图片 | | `blog_config` | 站点全局配置 | | `blog_guestbook` | 留言板(嵌套回复) | | `email_codes` | 邮箱验证码记录 | --- ## 快速开始 ### 环境要求 - JDK 1.8+ - Maven 3.6+ - MySQL 8.0+ - Redis ### 数据库初始化 ```bash # 创建数据库并导入脚本 mysql -u root -p < sql/wblog.sql ``` ### 配置修改 编辑 `wblog-admin/src/main/resources/application.yml`: | 配置项 | 说明 | |------------------|--------------------------------------------| | `ruoyi.profile` | 文件上传存储路径(如 `D:/Project/WBLOG/WBLOG-Store`) | | `server.port` | 服务端口(默认 9191) | | `spring.redis.*` | Redis 连接信息 | | `spring.mail.*` | 邮箱 SMTP 配置(注册验证码发送) | 编辑 `wblog-admin/src/main/resources/application-druid.yml` 配置数据库连接。 ### 编译与运行 ```bash # 进入项目目录 cd WBLOG-Server # Maven 打包 mvn clean package -DskipTests # 方式一:直接运行 Jar cd wblog-admin/target java -jar wblog-admin.jar # 方式二:使用脚本(Windows) bin\run.bat ``` ### 接口文档 启动后访问 Swagger 文档(开发环境): ``` http://localhost:9191/swagger-ui/index.html ``` --- ## 效果预览
--- ## 致谢 - **[若依 RuoYi](https://gitee.com/y_project/RuoYi-Vue)** — 提供了 Spring Boot 后端脚手架、权限管理、JWT 认证、代码生成、系统监控等完整的基础框架,是本项目的核心底座。没有若依,就没有 WBLOG。 - **[MyBatis](https://mybatis.org/)** — 持久层框架 - **[Druid](https://github.com/alibaba/druid)** — 数据库连接池与监控 ---

WBLOG · Wisteria Blog · 学生时代的练手之作,能跑就行,图一乐