# my_blog **Repository Path**: cl321/my_blog ## Basic Information - **Project Name**: my_blog - **Description**: 本项目用到的技术和框架 1.项目构建:Maven 2.web框架:Springboot 3.数据库ORM:Mybatis 4.数据库连接池: Druid 5.分页插件:PageHelper 6.数据库:MySql 7.缓存:Redis 8.前端模板:Thymeleaf 9.文章展示:Editor.md - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 0 - **Created**: 2022-12-07 - **Last Updated**: 2025-06-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: SpringBoot, thymeleaf ## README # MYBlog #### 关于本地开发 可直接导入该项目于本地,修改配置文件中的数据库连接信息,导入附带数据库结构的SQL文件可直接生成所有表,如果有需要短信验证还需要开通短信相关服务。各短信api即可。 ## 项目需求 #### 项目背景 对于学Springboot的朋友来说,最好的一个学习方式就是那一个功能俱全的项目来练练手,通过练习来不断熟练技术发现自己的不足,并且也能很好的在编码过程中总结和发现问题、解决问题。使用Springboot开发的博客系统,简单并且实用,适合做练手项目。 #### 功能需求 ###### 主页 - 博客汇总,以列表形式展示文章,并附上文章作者、发布日期、分类情况以及文章简要 - 能够以分类形式查看文章 - 能够以时间列表方式归档文章 - 可实现通过标签查找所有相关文章 - 个人介绍、联系方式 - 博客网站更新记录 - 友链链接 ###### 后台管理 - 网站仪表盘,记录网站访客量情况 - 文章管理 1.分页展示文章信息 2.可对文章进行再编辑以及删除文章 - 发布文章 1.使用markdown编辑器,支持插入代码,插入图片等功能 2.文章可选择分类和标签,以及转载文章支持链接原作者文章 - 分类管理,支持增加、删除、修改分类 - 友情链接 1.支持增加友情链接 2.支持删除友情链接 - 反馈信息管理,可查看用户反馈信息 #### 安装部署需求 - 可以使用docker方式部署,也可支持-jar方式 - 使用springboot自带方式打包 #### 非功能需求 ##### 性能需求 - 首页响应时间不超过2秒钟 - 文章页响应时间不超过3秒钟 ## 项目设计 #### 总体设计 - **本项目用到的技术和框架**
1.项目构建:Maven
2.web框架:Springboot
3.数据库ORM:Mybatis
4.数据库连接池: Druid
5.分页插件:PageHelper
6.数据库:MySql
7.缓存:Redis
8.前端模板:Thymeleaf
9.文章展示:Editor.md
- **本项目中的关键点**
1.采用Springboot开发,数据库使用连接池加orm框架的模式,对于系统的关键业务使用Redis缓存,加快相应速度。
2.整体系统采用门户网站+后台管理+用户个人中心的方式搭建,门户网站展示博客内容以及博主介绍,后台管理用于编辑文章,查看反馈,管理评论留言。
- **环境** | 工具 | 名称 | ------------ | ------------ | 开发工具 | IDEA | 语言 | JDK8.0、HTML、css、js | 数据库 | Mysql 5.x | 项目框架 |spring boot | ORM | Mybatis | 安全框架 | SpringSecurity | 缓存 | Redis | 项目构建 | Maven | 运行环境 | 腾讯云docker-Centos7 对于熟悉Spring开发的朋友来说,相信对此结构也不会陌生。平时的开发过程中,结构设计是重要的环节,特别是协作开发的时候,明细的分包,模块化,可减少代码提交时的冲突。并且明确的结构有助于我们快速的寻找所对应的类。 ## 打包、部署和运行 - 本项目采用Springboot的maven插件进行打包,打包结果:****.jar - 部署方式:使用 shell脚本的方式,启动后台项目,shell可配置日志生产路径。 ## 开发流程 ###### 数据库CRUD - controller层中编写前端接口,接收前端参数 - service层中编写所需业务接口,供controller层调用 - 实现service层中的接口,并注入mapper层中的sql接口 - 采用Mybatis的JavaConfig方式编写Sql语句。由于并没有使用Mybatis的逆向功能,需要自己手写所有sql语句 - 关于事务的实现,在启动类中开启事务,并在service层需要实现事务的业务接口上使用`@Transactional`注解 - 访问量的存储使用定时任务 ###### 页面与展示 - 作为一名后端开发,对于前端编辑的能力有所欠缺,这里我使用了[MyBlog](www.zhyocean.cn),极大的减少了页面的开发难度,特此感谢 - 前端页面与后端的交互主要是在controller包中,并使用Thymeleaf渲染页面。 - 自定义异常处理页面,通过重写`WebMvcConfigurerAdapter`实现自动跳转到404、403页面 ###### 其他功能 - 使用lazyload插件实现页面图片懒加载 - 后台实时记录当天访客量,便于了解博客日常访问量 - 分析访问量最多的数据,主要在于文章访问部分,将文章放入redis缓存。每次编辑完文章后,更新缓存