springboot搭建博客系统
springboot搭建个人博客系统
搭建博客的初衷:
博客的基本作用就是博主写文章,读者浏览文章,因此博客的基本功能就是文章的发布和阅读;同时为了方便浏览加入主题分类和标签分类等功能,为了增加互动加入赞踩和评论等功能;另外为了博客系统的完整性加入了文章点击量,热门文章排行,文章按月归档等功能。
最开始自己刚接触springboot框架,自己就想在学习的过程中自己搭建一个系统,然后想了想就搭建了这个个人博客系统,然后开始在网上疯狂借鉴网页模板,就看见了一个模板感觉还可以,就用了一个人开发的博客的主界面,然后自己就慢慢做,先把主界面index做出来,再一步步的加功能和界面。
文章简述:
- springboot项目的启动。
- 开发前的一些准备工作,以及思考项目整体结构与思路。
- 总结目前博客网站的一些优缺点。
- 思考整个项目有哪些可以优化的地方,以及有哪些可增加的功能。
- 部署在服务器上。
界面展示
文章编辑界面:
文章归档界面:
还有几个界面就不一一展示了(后面有进入博客的url)
功能需求:
主页:
- 首页展示文章的摘要部分;
- 在文章显示模块中显示(文章发布时间、分类、出处、摘要);
- 主页文章展示界面要分页(我设置的一页显示5篇文章);
- 主页左侧显示博主的个人信息;
- 主页右侧显示网站的开始时间及运行时间;
- 在主页的尾部实现了一件往上功能(方便用户操作)。
安装部署:
- 我用的方式:springboot自带打包方式(打包成jar),再部署在服务器。
项目设计:
用到的开发工具:
- idea编辑器;
- navicat可视化数据库;mysql;
- xshell实现项目的部署。
项目用到的技术及框架
- 项目构建:Maven
- web框架:Springboot
- 数据库ORM:Mybatis
- 分页插件:PageHelper
- 数据库连接池:
- 数据库:MySql
- 前端模板:Thymeleaf
- 文章编辑及展示:Editor.md
业务设计:
文章发布流程:
登陆流程:
打包、部署、运行:
- 本项目采用Springboot的maven插件进行打包,打包结果:****.jar
- 部署方式:使用 nohup java -jar ******.jar >******.log 2>&1 &的方式,后台启动项目,并在该路径下生成运行日志
数据库表的设计:
blog_article(文章表)
blog_comment(评论表)
名称 | 描述 |
---|---|
id | 主键 (int)20 |
articleId | 文章的id (bigint)20 |
commentContent | 评论的内容 (longtext)0 |
fromUId | 来自于谁发布的 (int)20 |
commentTime | 评论的时间 (varchar)32 |
blog_reply(回复表)
名称 | 描述 |
---|---|
id | 主键id (int)20 |
replyContenrt | 回复的内容 (longtext)0 |
fromUId | 来自谁的回复 (int)20 |
toComId | 哪篇文章 (int)20 |
replyTime | 回复的时间 (varchar)32 |
blog_user(用户表)
开发流程:
- controller层中编写前端接口,接收前端参数
- service层中编写所需业务接口,供controller层调用
- 实现service层中的接口,并注入mapper层中的sql接口
- 采用Mybatis的JavaConfig方式编写Sql语句。由于并没有使用Mybatis的逆向功能,需要自己手写所有sql语句
- 本项目开发并不是很难,只是在业务的实现上比较复杂
页面与展示
- 作为一名后端开发,对于css的功力有所欠缺,这里我使用了一些主题,极大的减少了页面的开发难度,特此感谢,拼凑了一些界面;
- 前端页面与后端的交互主要是在controller包中,并使用Thymeleaf渲染页面。
网站建设
- 目前没有申请域名,只是用的IP地址访问
- xshell连接服务器,搭建好jdk环境和mysql环境
- 服务器选择的腾讯云
本网站的优缺点
- 首先最大的一个缺点就是在前端页面设计过程中混用了一些Bootstrap,导致依赖过于复杂,不便于后期修改,已经网站上有一些隐藏的bug
- 对于页面用户体验以及反馈功能的设计便于用户对于浏览过程中出现的问题进行反馈
- 后端部分明确的分工有利于项目的理解与维护
定义需求需要增加的功能
- 可以分享至QQ、微信
- 增加用户个人中心
- 用户可自己发布文章