项目演示
先看看演示视频吧
简单介绍
个人博客管理系统采用Springboot2.4.5框架开发,是标准的MVC模式,将这个系统划分为View层、Controller层、Service层、DAO层和持久层五层。其中,Spring MVC负责请求的转发和视图管理,Spring实现业务对象管理,MyBatis-Plus作为数据对象的持久化引擎。系统结构图如图所示。
该系统主要分为前台用户界面和后台管理界面两个核心部分,以适应不同用户群体的功能需求。
- 前端功能模块:
- 文章浏览:系统应具备简洁明了的博客列表页面,展示最新、最热或按分类筛选的文章供访客阅读。
- 文章详情页:提供详细的博客内容显示,包括正文、作者信息、发布时间、分类标签以及评论区。
- 互动功能:访客可以对文章进行点赞、收藏,并通过评论系统与博主和其他访客展开讨论,促进社区交流与知识共享。
- 后端管理功能模块:
- 用户账号管理:管理员能够实现账户注册、登录
- 内容管理:提供MarkDown编辑器,支持富文本格式,允许管理员轻松创建、编辑、删除博客文章,并具有草稿保存和发布预览功能。
- 分类与标签管理:系统应包含灵活的分类体系和标签系统,便于管理员组织和检索博客内容,方便用户根据主题快速定位感兴趣的文章。
- 评论管理:管理员可以查看、删除评论。
- 安全性与稳定性要求:访客只能对博客信息进行浏览,管理博客的信息,需要登录到后台管理系统,在登录时进行MD5的密码的加密
- 配置拦截器对未登录的非法的越权请求进行拦截。同时,在云服务中对安全组进行配置,防止不明地址的请求和攻击。
项目整体功能需求如图 1-1所示:
个人博客管理系统功能模块图如图所示:
- Spring Boot 2.4.5:作为项目的基础框架,Spring Boot极大地简化了新Spring应用的搭建与开发流程。通过预置的默认配置和自动配置功能,显著减少了手动编写冗余配置代码的工作量,提高了开发者的工作效率。
- Developer Tools:
- Spring Boot DevTools:提供实时刷新功能,使得开发过程中对源代码的修改能立即反映到应用上,大大提升了开发迭代速度。
- Lombok:作为一种代码生成工具,它能够减少Java类中的样板式getter、setter等方法以及构造函数的编写,从而提升代码的简洁性和可读性。
- Web层:采用Spring Web框架构建,用于处理HTTP请求和响应,实现了前后端交互逻辑。
- 模板引擎:选用Thymeleaf,用以渲染前端页面,实现动态内容生成。
- 持久层框架:采用MyBatis进行数据库交互。MyBatis支持灵活的SQL定制、存储过程调用以及高级映射机制,可以高效地执行数据访问操作并自动处理JDBC相关的参数设置及结果集获取,减轻了开发者在数据库操作方面的负担。
- 数据库连接:使用MySQL Driver建立与MySQL数据库的连接。MySQL作为一个广泛应用于WEB领域的强大关系型数据库管理系统,以其稳定性、高效性和易用性成为个人博客系统存储和检索数据的理想选择。
- 项目管理和构建工具:Maven负责项目的构建管理和依赖协调,通过标准化的项目结构和构建生命周期,帮助开发者自动化完成编译、测试、打包和部署工作,确保了开发流程的一致性和高效性。
使用介绍
工具版本
- 数据库:MySQL 5.0及8.0版本
- 操作系统:Linux、windows10 32位、64位、Android
- 运行环境:JDK 1.8
- Spring Boot 2.4.5
- Idea:旗舰版(Ultimate)社区版本应该会不能跑,还是建议用旗舰版本吧。
maven依赖
maven依赖用idea自动导一下就行,应该没什么大问题
数据库配置
下面将一下怎么使用吧,首先我们要创建一个名为blog的数据库,再导入下面的sql语句。
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for t_blog
-- ----------------------------
DROP TABLE IF EXISTS `t_blog`;
CREATE TABLE `t_blog` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '标题',
`content` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '内容',
`first_picture` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '首图',
`flag` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '标记',
`views` int(11) NULL DEFAULT NULL COMMENT '浏览次数',
`appreciation` tinyint(1) NOT NULL DEFAULT 0 COMMENT '赞赏',
`share_statement` tinyint(1) NOT NULL DEFAULT 0 COMMENT '转载声明',
`commentabled` tinyint(1) NOT NULL DEFAULT 0 COMMENT '评论',
`published` tinyint(1) NOT NULL DEFAULT 0 COMMENT '发布',
`recommend` tinyint(1) NOT NULL DEFAULT 0 COMMENT '推荐',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`type_id` bigint(20) NULL DEFAULT NULL COMMENT '分类id',
`user_id` bigint(20) NULL DEFAULT NULL COMMENT '拥有者id',
`description` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '文章描述',
`tag_ids` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '标签id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = COMPACT;
-- ----------------------------
-- Records of t_blog
-- ----------------------------
INSERT INTO `t_blog` VALUES (1, '3', '# 3', '11', '', 11, 0, 0, 0, 0, 0, '2023-12-25 09:48:24', '2023-12-25 09:48:24', 1, 0, '111', '1');
INSERT INTO `t_blog` VALUES (2, '答辩演示', '# Markdown文档样例\r\n\r\n## 目录\r\n\r\n- [标题](#标题)\r\n- [文本格式化](#文本格式化)\r\n- [链接](#链接)\r\n- [列表](#列表)\r\n- [引用](#引用)\r\n- [代码块](#代码块)\r\n- [插入图像](#插入图像)\r\n\r\n## 标题\r\n\r\nMarkdown中使用`#`符号来表示标题,`#`的数量表示标题的级别。\r\n\r\n# 一级标题\r\n## 二级标题\r\n### 三级标题\r\n[链接文本]()\r\n\r\n列表\r\n- 无序列表项 1\r\n- 无序列表项 2\r\n - 嵌套的无序列表项\r\n\r\n\r\n![壁纸](https://inews.gtimg.com/newsapp_bt/0/13956121885/641)\r\n\r\n代码块\r\n```python\r\ndef hello_world():\r\nprint(\"Hello, World!\")\r\n```\r\n\r\n行代码\r\n`print(\"Hello, World!\")`\r\n\r\n\r\n\r\n', 'https://img0.baidu.com/it/u=2789195095,3243697354&fm=253&fmt=auto&app=138&f=JPEG?w=400&h=300', '', 2, 0, 0, 0, 1, 0, '2023-12-26 16:43:57', '2023-12-26 16:51:00', 1, 0, '答辩文档', '1');
-- ----------------------------
-- Table structure for t_blog_tags
-- ----------------------------
DROP TABLE IF EXISTS `t_blog_tags`;
CREATE TABLE `t_blog_tags` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`tag_id` bigint(20) NULL DEFAULT NULL,
`blog_id` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `fk_tag_id`(`tag_id`) USING BTREE,
INDEX `fk_blog_id`(`blog_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = COMPACT;
-- ----------------------------
-- Records of t_blog_tags
-- ----------------------------
INSERT INTO `t_blog_tags` VALUES (1, 1, 1);
INSERT INTO `t_blog_tags` VALUES (2, 1, 2);
INSERT INTO `t_blog_tags` VALUES (4, 1, 3);
INSERT INTO `t_blog_tags` VALUES (8, 1, 4);
-- ----------------------------
-- Table structure for t_comment
-- ----------------------------
DROP TABLE IF EXISTS `t_comment`;
CREATE TABLE `t_comment` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`nickname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '昵称',
`email` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮箱',
`content` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '内容',
`avatar` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '头像',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`blog_id` bigint(20) NULL DEFAULT NULL COMMENT '所属博客id',
`parent_comment_id` bigint(20) NULL DEFAULT NULL COMMENT '父评论id',
`admin_comment` tinyint(1) NULL DEFAULT NULL COMMENT '管理员评论',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = COMPACT;
-- ----------------------------
-- Records of t_comment
-- ----------------------------
INSERT INTO `t_comment` VALUES (1, '111', '111', '悟解', '/images/avatar.jpg', '2023-12-26 00:44:52', 3, -1, 0);
INSERT INTO `t_comment` VALUES (2, 'lyk', 'liyankang@aliyun.com', '悟解', '/images/avatar.jpg', '2023-12-26 14:10:16', 3, -1, 0);
INSERT INTO `t_comment` VALUES (3, 'lyk', 'liyankang@aliyun.com', '呜呜呜', '/images/avatar.jpg', '2023-12-26 14:16:35', 3, -1, 0);
INSERT INTO `t_comment` VALUES (4, 'lyk', 'liyankang@aliyun.com', '我是来测试评论的', '/images/avatar.jpg', '2023-12-26 16:56:27', 2, -1, 0);
-- ----------------------------
-- Table structure for t_tag
-- ----------------------------
DROP TABLE IF EXISTS `t_tag`;
CREATE TABLE `t_tag` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '标签名',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = COMPACT;
-- ----------------------------
-- Records of t_tag
-- ----------------------------
INSERT INTO `t_tag` VALUES (1, 'python');
-- ----------------------------
-- Table structure for t_type
-- ----------------------------
DROP TABLE IF EXISTS `t_type`;
CREATE TABLE `t_type` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '分类名',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = COMPACT;
-- ----------------------------
-- Records of t_type
-- ----------------------------
INSERT INTO `t_type` VALUES (1, '我的');
-- ----------------------------
-- Table structure for t_user
-- ----------------------------
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`nickname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '新用户' COMMENT '昵称',
`username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '用户名',
`password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '密码',
`email` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮箱',
`avatar` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '头像',
`type` int(11) NULL DEFAULT NULL COMMENT '权限',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_time` datetime NULL DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = COMPACT;
-- ----------------------------
-- Records of t_user
-- ----------------------------
INSERT INTO `t_user` VALUES (0, '悟解', 'LiYanKang', 'a448410bdcbb4d7cfb32830909f6aa08', 'lyk2zmy@163.com', 'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fc-ssl.duitang.com%2Fuploads%2Fitem%2F201811%2F07%2F20181107103350_V8nTe.thumb.1000_0.jpeg&refer=http%3A%2F%2Fc-ssl.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1706173075&t=ff98d36f75f41fe74f413987a18b13eb', 1, '2023-12-26 21:55:53', '2023-12-27 21:56:01');
INSERT INTO `t_user` VALUES (1, '悟解', 'lyk', '123456', 'liyankang@aliyun.com', 'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fc-ssl.duitang.com%2Fuploads%2Fitem%2F201811%2F07%2F20181107103350_V8nTe.thumb.1000_0.jpeg&refer=http%3A%2F%2Fc-ssl.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1706173075&t=ff98d36f75f41fe74f413987a18b13eb', NULL, NULL, NULL);
SET FOREIGN_KEY_CHECKS = 1;
导入完成后应该有以下的表结构如下:
修改数据库账号密码(一共要修改4处哦):
特别声明
关于代码
我想了一下,还是私信吧,算了我这里也放一个链接:传送门
关于课设报告文档
由于只是提供学习,不放置课设报告了哦,我的报告写了大概1w+字,要借鉴的也行,但是报告还是推荐自己写哦,由于是多人合作,我这里的报告分为admin端版本和web端版本,我本人的是admin端的版本,web端是我的室友在写。
关于人脸识别文章来源:https://www.toymoban.com/news/detail-787181.html
这里我只是调了一个华为云的接口,目前只可以识别我一个人,无法识别别人,感兴趣的同学可以了解一下,等你把接口配置好了,就只需要改一部分代码就好了。如果不会调接口的话,我看看评论吧,如果大家想要看,我也可以出一篇调接口的。文章来源地址https://www.toymoban.com/news/detail-787181.html
到了这里,关于Java Web课设——个人博客(双端系统)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!