博客系统(Spring Boot)汇总,含源代码

博客系统概要

具体功能的实现,可以看我其他关于博客系统的文章

博客系统是干什么的?

CSDN就是一个典型的博客系统。而我在这里就是通过模拟实现一个博客系统,这是一个较为简单的博客系统,但是主要功能一个不缺,不过就是 UI 有些 low,我学习前端是为了写后端更加顺手。不至于前后端完全分离,但是有个问题,设计的 web 页面不是很好看。
在这里插入图片描述
这张图是我的根据业务需求,制作出来的业务流程图。

这个系统的业务功能:

客户端:登录用户,注册用户,查看文章,查看自己的所有文章(在这个页面里面,可以删除自己的文章,修改文章,阅读文章等功能),创建一个新的文章,注销当前用户。

服务器:对数据库进行增删改查

讲解业务流程与具体实现的技术

在这里插入图片描述
客户端将用户的数据打包成 json 格式,上传服务器,并请求响应。服务器根据前端的请求,响应具体的功能处理数据,并返回数据处理的结果,在客户端上响应。

在这里插入图片描述

服务器根据前端返回过来的具体请求,在数据库上进行增删改查。而更具什么请求,去处理什么数据。就需要去看下面这张图

在这里插入图片描述

主要业务需求

1.客户端请求:登录(将用户名和密码上传)--------------------服务器得到前端传过来的用户名,密码。

  • 然后服务器根据用户名去数据库查找密码,从数据库中传来的密码通过解密得到盐值字符串和MD5加密后的字符串。通过对用户上传的密码进行加密,来对比MD5的字符串是否一致。
  • 判断完数据的准确性后,将处理结果返回-----------------客户端(根据结果,对用户进行展示)
    在这里插入图片描述

2.客户端请求:注册(将注册好的用户名和密码上传)------------------服务器得到前端传过来的用户名,密码。

  • 将前端上传的数据,先将密码进行加密。如何加密?
  • 将密码通过UUID生成唯一的盐值,在将密码和盐值组合通过MD5加密工具,加密生成唯一的值(这个值通过字符串生成的秘钥是一定的,可以通过这个特点来进行解密)将盐值和MD5加密的值组合形成最终的密码。
  • 将最终密码和用户名进行数据库保存。
  • 将保存成功后的结果返回-------------服务器。

在这里插入图片描述

3.客户端请求:用户进入博客主页(上传当前分页的页数和总数)-------------------(首先先验证登录的状态)服务器得到请求,准备将所有查询的数据进行返回

  • 服务器得到请求后,根据分页数和展示总数作为参数,计算sql语法中 limit 从第几行的开始的几个数据。
  • 将这些数据通过json格式返回给-----------------------------客户端,通过拿到数据通过JQuery展现给用户
    在这里插入图片描述

4.客户端请求:用户进入文章添加页(将添加好的数据)----------------服务器拿到数据构造成一个文章对象,存储到数据库。
在这里插入图片描述
5.客户请求:进入个人博客页----------------------------------客户端根据当前的回话信息获取前用户的uid

  • 服务器根据uid查找关于当前用户的所有文章
  • 将文章写入集合类,通过json格式上传数据
  • 客户端根据响应的数据,展示文章内容
    (这里图片有个小错误,在数据库那个模块里,没有文章对象保存的操作)
    在这里插入图片描述
    6.客户端请求:进入文章详情页--------------------------------服务器通过文章id查找具体的文章内容
  • 服务器根据aid查找具体文章,并返回
  • 包装成json格式返回给客户端
  • 客户端根据具体文章内容进行展示

在这里插入图片描述
7.客户端请求:进入个人博客页(点击删除文章)--------------服务器根据文章aid删除数据库里的文章

  • 服务器获取回话信息,得到当前的用户id,
  • 通过客户端上传的的aid和得到的用户id,联合查询删除文章
  • 将删除成功的信息返回给客户端

在这里插入图片描述
8.客户端请求:进入个人博客页(点击修改文章)--------------服务器根据文章aid查找数据库里的文章

  • 服务器获取回话信息,得到当前的用户id,
  • 通过客户端上传的的aid,获取文章内容并展示进入md
  • 当用户点击修改完成。通过客户端上传的的aid,再结合之前回话信息的uid,保存文章
  • 返回信息给客户端。
    在这里插入图片描述

9.客户端请求:注销------------------------------服务器获取请求后删除当前用户的回话信息

在这里插入图片描述
此时具体的业务模块也就基本完成。

补充

以上的业务模块会遇到几个问题

  1. 服务器在响应的时候,返回的数据不一定是json格式,这就需要我们人为的包装,并且在json格式中,string类型是不适用的。此时就会报错。所以我们还需要对数据进行统一的格式化处理。统统转换成json格式(而统一处理是一个类,转换成json格式又是一个类,他们并不一致)
  2. 这里的模式都是单例模式,面对的是一个用户,但在实际运用中会遇到,多个用户登录的情况,此时就需要多线程处理这个问题。也就是要在程序之后程序中定义一个线程池的工具。对需要线程的情况下,做多线程处理
  3. 在以上的业务中,大部分都需要获取当前的回话对象,这就需要我们不停的提取当前回话对象,从拿出来的对象中,获取我们想要的值,然后具体操作业务。此时就需要一个类将这个业务流程进行封装,降低耦合性。从而想用就用。
  4. 用户不能跳过登录信息,获取实现对系统的操纵。此时也就需要一个类来进行拦截没有登录的对象。及AOP应用
  5. 同理,服务器在处理数据的时候,可能会有错误,此时,我们也用一个类对控制层的程序进行错误拦截,及AOP应用

具体功能的实现,可以看我其他关于博客系统的文章

源码

https://gitee.com/bdhejn/Java2/tree/master/Myblog

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值