基于springboot + Thymeleaf + vue开发的 个人博客,含前后端

  • 作者: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优化友好)。

博客更新了很多实用的功能,并且后续会以能够开源的标准进行开发,代码全部开源,并且这次会作为稳定的版本持续的维护下去。

该博客作为一个刚学习springbootjava程序员而言是非常适合入门学习的一个项目,因为所用框架都是比较主流的开发框架,并且整个博客项目涵盖了前端、后端开发、域名购买、项目部署、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

功能模块

管理后台

  1. 登录:使用satoken提供的拦截器对管理员身份进行验证,拦截所有非管理员访问后台相关页面,管理员登录后拥有管理权限,能在后台管理页面对博客、标签和友链进行管理
  2. 博客管理:查询文章、写文章、编辑文章、删除文章、保存草稿。
  3. 标签管理:添加标签、删除标签、修改标签、查询标签。
  4. 友链管理:添加友链、删除友链、修改友链、审核友链。
  5. 系统参数管理:站点概览、站长名称、关于我内容的编辑。

博客主页

  1. 首页:博客列表、推荐文章、点击量、评论数、站长个人信息(QQ、微信、邮箱、地址)、网站总浏览量、较昨日浏览量增长量、博文总数、评论总数、留言总数
  2. 文章详情页:文章内容阅读、目录、评论区、相关推荐、悬浮条、博客赞赏、版权声明
  3. 搜索:按照关键词匹配文章列表
  4. 标签:可以查看所有标签、各个标签对应的文章
  5. 归档:可以按发布时间顺序查看每一篇文章
  6. 评论区:访客在留言板和每一篇文章底部可以发表评论,回复评论,并且会向回复对象、以及被回复时发送提醒邮件。点击评论者头像可以跳转到该评论者的博客。管理员评论有特殊标记,管理员可删除评论区的任意评论。
  7. 友链:查看友链、访问友链、申请友链
  8. 关于我:在这里查看栈主的个人信息
  9. 底部栏:网站的总运行时间、备案号

数据库设计

博文表 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、微信。。。)
在这里插入图片描述

用户管理

在这里修改密码
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/464712.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[freertos]freertos移植到工程项目

在freertos官网下载freertos源码,如图所示: 在自己的工程文件夹创建文件夹"freertos" 在freertos文件夹里创建inc,port,src文件 操作系统源码文件include里所有.h文件拷贝到工程文件创建的inc文件夹; 操作系统源码文件portable里所…

Java奠基】对象数组练习

目录 商品对象信息获取 商品对象信息输入 商品对象信息计算 商品对象信息统计 学生数据管理实现 商品对象信息获取 题目要求是这样的: 定义数组存储3个商品对象。 商品的属性:商品的id,名字,价格,库存。 创建三个…

.NET命令行(CLI)常用命令

本文用于记录了.NET软件开发全生命周期各阶段常用的一些CLI命令,用于开发速查。 .NET命令行(CLI)常用命令 项目创建(1)查看本机SDK(2)查看本机可以使用的.NET版本(3)生成…

计网day1

RTT:往返传播时延(越大,游戏延迟) 一.算机网络概念 网络:网样的东西,网状系统 计算机网络:是一个将分散得、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功…

Docker 有哪些常用的命令和操作?

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化。以下是Docker的一些常用命令和操作: 安装和启动Docker 要使用Do…

Agile Initiative, Epic, and Story/Task

Stories, also called “user stories,” are short requirements or requests written from the perspective of an end user. stories are something the team can commit to finish within a one- or two-week sprint.Epics are large bodies of work that can be broken do…

HarmonyOS鸿蒙ArkTS证件照生成模板(适合二次开发,全套源码版)

预览效果 部分代码 开发语言 HarmonyOS 鸿蒙 ArkTS语言 (Stage模型) 备注 一键生成,自带证件照数集, 为开发者带来二次开发和学习体验, 在这祝福开发者们使用愉快。 使用方法 下载后通过DevEco Studio开发工…

猫头虎分享已解决Bug || Go Error: panic: runtime error: index out of range

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

第3集《佛说四十二章经》

和尚尼慈悲、诸位法师、诸位同学,阿弥陀佛! 请大家打开讲议第四面,三、随文释义。 前面讲到本经的修学纲要是顿渐兼收,理事无碍。本经的修学有两个主题: (一)顿教法门: 顿教法门是一种智慧的观照。修学…

文献阅读:Mamba: Linear-Time Sequence Modeling with Selective State Spaces

文献阅读:Mamba: Linear-Time Sequence Modeling with Selective State Spaces 1. 文章简介2. 方法介绍 1. State Space Models2. Selective State Space Models 3. 实验考察 & 结论 1. 简单问题上的验证2. 实际场景效果 1. 语言模型2. DNA模型3. 语音模型 3. 细…

假期刷题打卡--Day29

1、MT1224棋盘 求一个N*N棋盘中的方块总数。 格式 输入格式: 输入整型N 输出格式: 输出整型 样例 1 输入: 2输出: 5备注 考虑到取值范围,可用long整型定义变量 分析过程 这个题目的意思是,在这…

I2C基础协议详解

串口是传感器、外设常用的接口,在低速器件中可以通过串口传输数据。高速复杂的器件,往往内部存在很多寄存器,这些寄存器的配置一般也是采用串口通信,可以节省IO口。 常用串口大致分为UART、IIC、SPI三种,其中IIC时序稍…