学习是好的,但觉得是需要一个实践项目来练手的,不然学的东西几天就忘光了~
so,我打算自己搭建一个博客网站来练习一下,把学到的东西都应用上。
项目架构
项目需求
需求背景
对于刚刚学习完SpringBoot的童鞋来说,没有什么是比实践开发一个项目更有效的了,比如搭建一个自己的博客系统。
需求列表(兼容移动端?)
- 前端-主页
- Banner位预留
- 推荐博文+图形轮播式展示;
- 博文列表,最多展示10篇,下拉加载更多;
- 标签分类-侧边栏,点击进入对应的文章分类列表页;
- 文章搜索,模糊搜索指定文章信息、作者名称;
- 顶tab分类,进入各个系统分类;
- 链接文章推荐区,外联其他作者的文章或博客;
- 阅读量最多的文章列表,展示最多的前5篇文章;
- 博客logo图+关注+联系我+返回顶部的浮层按钮;
- 动态时钟;
- 友情链接;
- 前端-博文列表页
- manager可添加文章
- 展示文章标题、更新时间、文章作者、操作按钮(manager展示-编辑、删除、置顶)
- 文章编辑框:可存草稿(找控件实现?)
- 文章详情页:可评论留言、收藏文章、分享文章
- 默认按照更新时间排序从上至下;
- 标签分类-侧边栏
- 顶tab分类,可返回首页
- 前端-后台管理
- 博文管理(增删改查)
- 用户管理(权限配置)
- 博文统计(PV及UV);
- 博客管理(友情链接配置)
后端-日志统计:
- 用户访问量、用户IP、文章PV/UV/分享量
- 实时保存文章更新信息(前端?)
- 定时任务备份数据
- 监控网站各系统运行状态
- 后端-性能处理:
项目交互
项目设计
项目部署
- 使用docker方式部署,可以采用-jar启动;
- 总体采用springboot框架打包;利用SpringCloud进行微服务的分布式开发;
- 技术框架:
-
本项目用到的技术和框架
- 项目构建: maven
- web框架:spring boot
- 分布式:SpringCloud
- 数据库ORM:mybatis-plus(有分页查询)
- 数据库连接池:Druid
- 数据库:mysql
- 缓存NOSQL:redis
- 前端模板:thymeleaf
- webjar:bootstrap
- 文章展示:使用commonmark,将markdown转成html页面
-
- 数据结构
- 用户表 blog_users
- 文章表 blog_contents
- 标签表 blog_tags
- 文章-标签关系表 blog_ct_relation
项目开发
- 搭建分布式框架,将各需求作为微服务开发;
- 创建数据库,关联数据,设计service层,实现增删改查;
- 找个开源UI框架做到前端展示,controller层的请求实现;
- 打包发布
项目测试
功能测试
- 项目开发完成后进行单元测试;
- 发布到test环境进行功能测试;
- 发布至线上做轮训测试;
项目发布
发布阶段
- 本地做开发及单元测试;
- 发布至test环境;
- 发布至线上;
我的项目实践——搭建一个博客网站
原文:https://www.cnblogs.com/iceb/p/9547176.html