作者:ChenZhen
本人不常看网站消息,有问题通过下面的方式联系:
- 邮箱:1583296383@qq.com
- vx: ChenZhen_7
我的个人博客地址:https://www.chenzhen.space/🌐
版权:本文为博主的原创文章,本文版权归作者所有,转载请附上原文出处链接及本声明。📝
如果对你有帮助,请给一个小小的star⭐🙏
文中源码地址:
- github: https://github.com/chenzhen7/cz-blog
- gitee:https://gitee.com/ChenZhen7/cz-blog
该博客是之前博客(https://www.chenzhen.space/blog/34)的一个2.0改造版本,对前端进行了全面的翻新!改用了bootstrap
作为前端css
框架,更加简约、美观,并且对项目的后台使用vue
+ axios
进行了重构,框架进行重新选型,并且使用sa-token
进行鉴权,博客的模板引擎还是使用thymeleaf
(SEO优化友好)。
博客更新了很多实用的功能,并且后续会以能够开源的标准进行开发,代码全部开源,并且这次会作为稳定的版本持续的维护下去。
该博客作为一个刚学习springboot
的java
程序员而言是非常适合入门学习的一个项目,因为所用框架都是比较主流的开发框架,并且整个博客项目涵盖了前端、后端开发、域名购买、项目部署、CDN配置等等,知识全面,难度偏中等,当你完成后还可以得到属于自己的一个博客,非常推荐个人学习。
项目制作不易,如果对你有帮助,请给一个小小的star⭐支持一下
技术栈
前端
JS框架:JQuery + Vue
CSS框架:Bootstrap5
Markdown编辑器:editormd
代码高亮: prism
目录生成:Tocbot
后端
整体使用springboot + Thymeleaf + Mybatis进行开发
核心框架:SpringBoot 2.7.3
持久层框架:MybatisPlus
模板框架:Thymeleaf
分页插件:PageHelper
数据库:mysql8
工具包:Hutool
鉴权框架:Satoken
参数校验:hibernate-validator
功能模块
管理后台
- 登录:使用satoken提供的拦截器对管理员身份进行验证,拦截所有非管理员访问后台相关页面,管理员登录后拥有管理权限,能在后台管理页面对博客、标签和友链进行管理
- 博客管理:查询文章、写文章、编辑文章、删除文章、保存草稿。
- 标签管理:添加标签、删除标签、修改标签、查询标签。
- 友链管理:添加友链、删除友链、修改友链、审核友链。
- 系统参数管理:站点概览、站长名称、关于我内容的编辑。
博客主页
- 首页:博客列表、推荐文章、点击量、评论数、站长个人信息(QQ、微信、邮箱、地址)、网站总浏览量、较昨日浏览量增长量、博文总数、评论总数、留言总数
- 文章详情页:文章内容阅读、目录、评论区、相关推荐、悬浮条、博客赞赏、版权声明
- 搜索:按照关键词匹配文章列表
- 标签:可以查看所有标签、各个标签对应的文章
- 归档:可以按发布时间顺序查看每一篇文章
- 评论区:访客在留言板和每一篇文章底部可以发表评论,回复评论,并且会向回复对象、以及被回复时发送提醒邮件。点击评论者头像可以跳转到该评论者的博客。管理员评论有特殊标记,管理员可删除评论区的任意评论。
- 友链:查看友链、访问友链、申请友链
- 关于我:在这里查看栈主的个人信息
- 底部栏:网站的总运行时间、备案号
数据库设计
博文表 t_blog
CREATE TABLE `t_blog` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '博客标题',`content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '注释',`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '描述',`first_picture` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '博客首图',`commentabled` bit(1) NOT NULL COMMENT '是否开启评论',`appreciation` bit(1) NOT NULL COMMENT '是否开启赞赏',`published` bit(1) NOT NULL COMMENT '博客发布状态',`recommend` bit(1) NOT NULL COMMENT '是否推荐博客',`share_statement` bit(1) NOT NULL COMMENT '是否开启转载声明',`copyright` int(11) DEFAULT NULL COMMENT '版权',`views` int(11) DEFAULT '0' COMMENT '浏览数',`comment_count` int(11) DEFAULT '0' COMMENT '评论数',`update_time` datetime DEFAULT NULL COMMENT '更新时间',`create_time` datetime DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`),KEY `TITLE` (`title`)
)
用户表 t_user
CREATE TABLE `t_user` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户名/账号',`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '密码',`nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '昵称',`email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '邮件',`avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '头像',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`update_time` datetime DEFAULT NULL COMMENT '更新时间',PRIMARY KEY (`id`)
)
标签表 t_tag
CREATE TABLE `t_tag` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '标签名',`create_time` datetime DEFAULT NULL,`update_time` datetime DEFAULT NULL,PRIMARY KEY (`id`)
)
标签文章关联表 t_blog_tag
CREATE TABLE `t_blog_tag` (`id` int(11) NOT NULL AUTO_INCREMENT,`blog_id` int(11) DEFAULT NULL,`tag_id` int(11) DEFAULT NULL,PRIMARY KEY (`id`)
)
评论表 t_comment
CREATE TABLE `t_comment` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`root_comment_id` bigint(20) DEFAULT NULL COMMENT '根评论ID,为空代表未根评论',`parent_comment_id` bigint(20) DEFAULT NULL COMMENT '父评论ID',`blog_id` bigint(20) DEFAULT NULL COMMENT '博客ID',`nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '昵称',`email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '邮箱',`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '内容',`address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '评论者的博客地址',`avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '头像',`admin_comment` bit(1) NOT NULL COMMENT '是否为管理员评论',`update_time` datetime DEFAULT NULL COMMENT '更新时间',`create_time` datetime DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`)
)
留言表 t_message
CREATE TABLE `t_message` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '昵称',`email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '邮箱',`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '留言内容',`avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '头像',`address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '留言者博客地址',`root_message_id` bigint(20) DEFAULT NULL COMMENT '根留言ID',`parent_message_id` bigint(20) DEFAULT NULL COMMENT '父留言ID',`admin_message` bit(1) NOT NULL COMMENT '是否为管理员留言',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`update_time` datetime DEFAULT NULL,PRIMARY KEY (`id`)
)
友链表 t_friend
CREATE TABLE `t_friend` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`blog_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '博客地址',`blog_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '博客名称',`blog_description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '博客描述',`picture_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '图片地址',`email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '审核通知邮箱地址',`status` int(2) DEFAULT '0' COMMENT '审核状态【0.审核中 1.通过 -1.不通过】',`reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '审核失败理由',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`update_time` datetime DEFAULT NULL COMMENT '更新时间',PRIMARY KEY (`id`)
)
系统配置表
CREATE TABLE `t_sys_config` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '参数名',`value` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '参数值',`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '描述',`create_time` datetime DEFAULT NULL,`update_time` datetime DEFAULT NULL,PRIMARY KEY (`id`)
)
项目展示
地址:https://www.chenzhen.space/
首页1
首页2
首页3
文章详情页1
文章内容和目录
文章详情页2
底部推荐文章
文章详情页3
文章评论区
赞赏
文章赞善码
搜索
关键词搜索
文章标签页
归档
根据时间顺序展示文章
留言板
游客可以评论,并留下自己的博客网站,其他游客点击头像可以跳转
友链
友链2
友链申请,后台审核后可以留下友链
关于我
后台登录界面
文章管理
编辑文章
主流markdown编辑器
标签管理
友链管理
友链管理、审核
系统参数管理
管理网站的系统参数(个人简介、栈主名称、QQ、微信。。。)
用户管理
在这里修改密码