做了一些改造,增加了一些功能和一些代码的重构,并且更换了博客主题。
关于项目,对于开发的练手项目,能够工程化,严谨一些。
关于文档,本文主要中从项目需求,项目设计的方式来阐述.
如何从零开始,使用springboot开发项目。
记录一些在开发过程中遇到的一些问题,总结开发技巧
接下来,会以需求和设计方式来阐述
效果图首页展示
文章编辑
文章管理
项目需求 项目背景对于刚学习springboot的同学,最好的就是拿一个项目练练手。在编码过程中遇到的问题并解决,这都是宝贵的经验。 用springboot开发的博客系统,简单而且实用,适合做练手项目。
功能需求 界面需求 主页博客汇总,以列表加图片的形式展示
能够以分类的方式查看文章
能够以时间列表的方式归档文章
个人介绍,github地址
搜索框,能够搜索文章
后台管理
管理主页,记录最新文章,最新留言,最近日志等
最近日志记录登录IP,地址,操作等
记录一天的访问量
发布文章
使用markdown编辑器,支持插入代码,插入图片等功能
能够给文章添加缩略图。
可将文章存为草稿或者发布
文章可选择分类和标签,自定义url
文章可控制是否允许评论
文章管理
以列表形式展示文章信息
在可选操作中增加删除,预览,编辑功能
支持分页显示
增加搜索功能,可根据文章名文章信息
分类管理
可以新增、删除、修改分类
文件管理
支持文件上传
支持删除已上传的文件
友情链接
支持增加友情链接
支持删除友情链接
系统设置
支持修改密码
支持备份数据库
支持黑名单配置
非界面需求日志记录,记录来访IP名单
每天定时备份数据库
安装部署需求可以使用docker方式部署,也可支持-jar方式
使用springboot自带方式打包
非功能性需求 性能需求首页响应的时间不超过1秒钟
文章页响应时间不超过1秒钟
项目设计 总体设计
本项目用到的技术和框架
项目构建: maven
web框架:spring boot
数据库ORM:mybatis
数据库连接池:Druid
分页插件:PageHelper
数据库:mysql
缓存NOSQL:redis
前段模板:thymeleaf
文章展示:使用commonmark,将markdown转成html页面
本项目的关键点
采用springboot开发,数据库使用连接池加orm框架的模式,对于系统的关键业务使用redis缓存,加快响应速度
整体系统采用门户网站+后台管理的方式搭建,门户主要展示博客内容,后台管理主要用于编辑文章,上传附件,控制黑名单登录等。
环境
结构设计熟悉spring开发的同学,相信对此结构图也并不陌生。平时的开发过程中,结构设计是重要的缓解,特别是协作开发的时候,明细的分包,模块化,可减少在git提交时的冲突。
业务设计本模块主要介绍一些关键的业务流程。
发布文章流程:
修改文章的流程大致上和发布是相似的,这里不再赘述了
登录流程
文件上传
在写文章的时候,通常会使用到图片,可以引用一些网络上的图片,更好的是本系统支持上传文件和图片
将文件区别为图片和其他,图片支持预览模式
文件路径设计成绝对路径,在web系统中可直接引用
文件按月份归类,文件名以uuid的重新命名存储
其他文件支持下载
文件上传流程图