源码系统概览
文章正文
POETIZE 是一款定位为最美博客的个人博客系统源码。
项目以 Spring Boot 为服务端核心,配合 Vue 前端构建完整的写作、阅读与社交体验。
本次整理的源码为 V2.0 版本,前端、后端与 IM 聊天三个工程均完整可编译。
源码简介
POETIZE 个人博客系统是一套面向个人站长与内容创作者的全栈博客平台源码。
系统采用前后端分离架构,服务端基于 Spring Boot 2.7 整合 MyBatis-Plus、Druid、Spring Cache 与 AOP 鉴权,并集成 T-io WebSocket 提供即时通讯能力。
前端主站使用 Vue 2 + Element UI,配套独立的 Vue 3 + Element Plus 即时通讯客户端,界面风格清新,强调阅读体验。
系统内置文章、相册、恋爱笔记、旅拍、友人帐、树洞、百宝箱、弹幕墙、收藏夹、资源聚合、置顶订阅、留言与聊天室等十余个模块。
后台包含文章、用户、评论、分类、网站设置、文件资源、树洞、恋爱、资源路径等多维管理,权限可按管理员与普通用户区分。
适用场景
适合希望快速搭建独立个人博客、技术写作站点或生活记录空间的开发者。
适合需要内置即时通讯、私信、聊天室等社交能力的中小型内容社区。
适合作为 Spring Boot + Vue 全栈学习的实战参考项目,覆盖鉴权、WebSocket、文件上传与对象存储等工程化能力。
适合二次开发为团队知识库、专栏站点或轻量级内容平台。
功能亮点
内置文章、相册、恋爱笔记、旅拍、友人帐、树洞、百宝箱、弹幕墙等十余种内容形态,模块开箱即用。
独立 IM 客户端基于 T-io 实现 WebSocket 群聊与单聊,配合 Vue 3 前端提供流畅聊天体验。
支持七牛云对象存储与本地存储双模式,可通过配置文件灵活切换附件与图片上传方式。
基于 AOP 的 LoginCheck 注解统一管理登录态,文章、评论、资源等接口鉴权清晰。
内置 ip2region 离线 IP 定位库,访问统计可按省份与 24 小时分布展示流量来源。
前台与后台分离,后台支持文章、用户、评论、分类、配置、树洞、资源、恋爱、资源路径等多维度管理。
技术架构与部署指南
| 维度 | 本套源码 | 同类通用方案 |
|---|---|---|
| 技术栈 | 前端:Vue 2.6 + Vue Router 3 + Vuex 3 + Element UI 2,主站使用 mavon | 依具体方案选型,需自行搭建与维护 |
| 部署方式 | 下载后解压获取 poetize-server、poetize-ui、poetize-im-ui 三个工程目录。 | 多托管于第三方平台或订阅云服务 |
| 功能侧重 | 内置文章、相册、恋爱笔记、旅拍、友人帐、树洞、百宝箱、弹幕墙等十余种内容形态,模块开箱即用。 | 功能通用,定制深度有限 |
| 数据归属 | 数据自持,部署在自有服务器,不出站 | 数据通常留存于服务商侧 |
| 成本模式 | 获取后自主部署,无持续授权费用 | 通常按订阅或调用量计费 |
技术栈与运行环境
前端:Vue 2.6 + Vue Router 3 + Vuex 3 + Element UI 2,主站使用 mavon-editor 富文本与 vue-baberrage 弹幕组件,配套 Vue 3 + Element Plus / naive-ui 的 IM 即时通讯客户端
后端:Spring Boot 2.7.18 + MyBatis-Plus 3.4 + Druid 1.2 + Spring AOP + Spring Cache + Spring Mail,集成 Hutool 工具集、FastJSON 2.0、t-io WebSocket Server 3.7、ip2region 2.7 离线定位库与七牛云 Java SDK 7.8
数据库:MySQL 8.0,字符集 utf8mb4,使用逻辑删除字段统一管理删除状态
运行环境:JDK 1.8、Maven 3.6+、Node.js(需 –openssl-legacy-provider 选项)、现代浏览器
其他依赖:Hutool 加密与扩展、SpringDoc OpenAPI 1.6、Validation API、Velocity 代码生成器、Lombok
安装与部署提示
下载后解压获取 poetize-server、poetize-ui、poetize-im-ui 三个工程目录。
在 MySQL 中新建 poetize 库,导入 poetry-web 同级 sql 目录下的 poetry.sql 初始化脚本。
修改 application.yml 中的数据库账号、密码、邮箱 SMTP、七牛云与本地存储相关配置。
使用 IDE 导入 poetize-server 的 Maven 工程,编译 poetry-web 模块并以 Spring Boot 方式启动 PoetryApplication,默认监听 8081 端口。
分别进入 poetize-ui 与 poetize-im-ui 目录执行 npm install,再使用 npm run serve 启动开发服务。
生产环境建议先 npm run build 产出 dist 静态资源,由 Nginx 反向代理至后端 8081 端口并配置 WebSocket 转发。
截图与演示说明
本批次未获取到无水印的演示截图,截图与演示说明以源码中已实现的页面与接口为准。
前台主站路由覆盖 /、/sort、/article/:id、/weiYan、/love、/favorite、/travel、/message、/about、/user、/letter,分别对应首页速览、分类、详情、微言、恋爱、收藏、旅拍、留言、关于、个人中心与私信。
后台路由 /admin 下提供 /welcome、/main、/webEdit、/userList、/postList、/postEdit、/sortList、/configList、/commentList、/treeHoleList、/resourceList、/loveList、/resourcePathList 等管理模块。
IM 客户端基于 t-io WebSocket 暴露 /imChatUserMessage、/imChatGroup、/imChatUserFriend 等接口群组,配合独立 IM UI 实现单聊与群聊。
文件资源上传通过 QiniuController 与 ResourceController 统一处理,最大单文件 100MB,可在本地存储与七牛云之间切换。






常见问题
问:启动后端时提示 Druid 驱动或 MySQL 连接失败怎么办?
答:检查 application.yml 中的 spring.datasource.url、username、password 是否与本地 MySQL 一致,并确认 poetry.sql 已成功导入且 MySQL 服务已启动。
问:前端 npm install 或 npm run serve 报错怎么处理?
答:Node 17 及以上版本默认 OpenSSL 3 会导致老旧 webpack-dev-server 报错,package.json 已预设 set NODE_OPTIONS=–openssl-legacy-provider,请使用兼容版本 Node.js 或保留该环境变量。
问:上传图片失败或提示跨域错误如何处理?
答:后端 CORS 由 CorsConfig 统一管理,开发阶段默认放行所有来源;
图片上传由 QiniuController 与 ResourceController 协同处理,部署到生产环境时请补全白名单与对象存储密钥。
安全风险提示
未检出:本批次源码未发现 eval、base64 解码执行、shell_exec、gzinflate 解压执行、加密混淆、硬编码后门等典型高危风险特征。
代码层面未见明显恶意远程下载或反弹 shell 逻辑,整体为常规 Spring Boot + Vue 业务实现。
特别提示:本源码未检测安全风险文件,下载后请务必进行安全审计,删除恶意代码后再部署使用!
下载说明
源码仅供学习研究、测试部署和二次开发参考,商用前请自行确认授权、版权和安全风险。
本项目由原作者开源分享,请在下载后 24 小时内评估学习用途,如需商用请通过合法渠道获得授权。
请尊重原作者的署名与版权声明,传播时请保留原项目中的 LICENSE、必看说明等版权文件。