SpringBoot实战及源码学习
深入了解SpringBoot
九八年生于晚秋
这个作者很懒,什么都没留下…
展开
-
讨论区交流平台项目导读
该项目是以牛客网讨论区为原型,进行以 SpringBoot + Mybatis + Mysql + Redis + Kafka + ElasticSearch 技术整合进行的后端项目开发。 以讨论帖为媒介实现社区平台,主要实现的功能有登录注册,发帖,评论,私信,点赞关注,系统通知,社区搜索,权限控制等。 以 Mysql 作为存储,建表语句如下: -- MySQL dump 10.13 Distrib 8.0.15, for Win64 (x86_64) -- -- Host: localhost D原创 2020-05-23 00:15:43 · 196 阅读 · 1 评论 -
讨论区交流平台项目 - 社区首页开发
功能分析 社区首页主要是显示数据库里面的所有的帖子数据也就是 discuss_post 表里面的数据,但是由于我们数据内容较多,所以还需要进行分页处理。 而其实呢,整个过程就是一次请求的执行过程,而我们采用的是 MVC 处理流程,一次请求到达先到达 Controller 层,Controller 层调用 Server 层提供的方法,Server 层再掉 DAO 层封装好的数据操作的方法。 开发步骤 依赖引入 首先我们知道这样的一个请求执行流程是需要连接到数据库的,我们采用的数据持久化又是 Mybatis 所原创 2020-05-23 00:21:40 · 655 阅读 · 0 评论 -
讨论区交流平台项目 - 发送邮件
功能分析 因为我们要实现注册功能,而注册功能主要的一个判断逻辑就是每个人的邮件账号是否存在,以及激活账号所用,所以实现发送邮件功能也是一个必须的过程。 而实现该功能必须要有专门的邮件服务器。邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中。 首先我们要了解一下邮件传输协议 SMTP 和 POP3 协议。我们通常把处理用户 SMTP 请求(邮件发送请求)的服务器称之为 SMTP 服务器(邮件发送服务器);把处理用户 POP3 请求(邮件接收请求)的服务器原创 2020-05-23 00:24:47 · 732 阅读 · 0 评论 -
讨论区交流平台项目 - 用户注册
功能分析 社区平台项目它的主体是用户,那么对于用户就需要在网站进行注册才能使用大部分功能。注册则需要用户提供一系列数据来给后台进行验证,在我们的项目里注册的主题是用户名,密码以及邮箱,后台以邮箱和用户名作为判断是否已经注册的依据,并且为了防止人们冒名使用他人邮箱,项目在后端会生成一个邮箱服务端,往注册的邮箱发送激活邮件,只有激活过的用户才算真正的注册成功。 细致的流程图如下: 开发步骤 因为这个功能涉及到的 JAR 包在之前都引用过了,所以就不需要进行依赖注入,只需要我们按照 MVC 架构的开发流程进行对原创 2020-05-25 16:05:12 · 284 阅读 · 0 评论 -
讨论区交流平台项目 - 生成验证码
功能分析 在登录阶段,我们除了需要输入自己的账号、密码,还需要输入验证码才能进行登录。我们常见的验证码就是给一张图片,上面是一些数字和字母的组合,然后我们输入图片的内容进行验证。 开发步骤 我们选择用 Kaptcha 来进行验证码图片的生成,它是一个可高度配置的实用验证码生成工具,通过这个工具我们可以很方便的设置验证码。其中 Kaptcha 可自由配置的选项有: 验证码的字体 验证码字体的大小 验证码字体的字体颜色 验证码内容的范围(数字,字母,中文汉字…) 验证码图片的大小,边框,边框粗细,边框颜色 验原创 2020-05-25 16:06:42 · 151 阅读 · 0 评论 -
讨论区交流平台项目 - 登录退出功能
功能分析 在互联网的世界中,一台服务器是对应着很多的浏览器,对于服务器来说,每一次浏览器给它发送一个 HTTP 请求,它进行的对应的业务处理返回数据,因为 HTTP 协议是无法保持状态的所以如果下一次同一个浏览器发送请求来,它是并不能识别出这是同一个浏览器发送来的数据,进行跟进的处理。为了解决以上的问题本文引入了 Cookie 和 Session。 Cookie 和 Session 其实都是为了解决会话跟踪的问题,区别在于 Cookie 是通过在客户端记录用户的信息身份,Session 是通过在服务端记录原创 2020-05-25 16:09:03 · 199 阅读 · 0 评论 -
讨论区交流平台项目 - 显示登陆信息
功能分析 我们在每个页面的头部都要把登陆用户的头像显示出来,另外在下拉栏也要显示登陆用户的名字,除此以外在登陆与否的情况下头部显示的内容也不一样,比如你没有登陆就显示首页、注册、登陆这几个功能入口,登陆了就显示首页、消息、用户头像等功能入口。 而我们每个页面头部都需要显示登陆信息,也就是每个请求过来都需要做同样的处理。传统的方法可能就是将这个功能进行封装,然后每个请求执行之前都调用一下,但是这样导致的结果就是代码的耦合度较高,以后再更改就不很方便。因此我们引用拦截器这个思想,它能够通过配置拦截浏览器发送过来原创 2020-05-25 16:10:39 · 163 阅读 · 0 评论 -
讨论区交流平台项目 - 更改用户头像
功能分析 从本地上传头像文件,而对于上传文件需要注意的是这个请求必须要是 POST 请求,在服务器端呢,接收文件的话 SpringMVC 给我们提供了 MultipartFile 类来处理上传文件。 而我们更改用户头像,第一步肯定是要进行上传头像,头像存放的位置呢可以是本地的服务器,也可以是云服务端,这里我们先暂时存到本地;第二部就是获取头像,因为上传上的头像,在后续其他地方我们需要继续使用。 开发步骤 properties文件配置 要想上传文件,首先我们要定义文件最终要存放在哪里。 community.p原创 2020-05-25 16:12:09 · 280 阅读 · 0 评论 -
讨论区交流平台项目 - 修改密码
功能分析 用户访问请求提供旧密码以及新密码,在后台我们通过判断旧密码是否提供正确,如果验证通过就修改密码,不然就给前端返回错误提示。 就是很经典的三重架构流程开发就完事了。 开发步骤 数据访问层 数据访问层需要提供查询用户以及修改密码两种方法,在前面的开发过程中已经开发完成,具体代码看社区首页开发那块即可。 业务层 验证原始密码的正确性,以及成功后修改密码。 UserService 类: package com.spring.community2.service; import com.spring.com原创 2020-05-25 16:13:02 · 329 阅读 · 1 评论 -
讨论区交流平台项目 - 检查登录状态
功能分析 目前我们开发的所有的功能都有着对应的接口路径,虽然我们没有登录前看不到一些功能入口,但是如果我们知道对应的功能路径,我们也是直接输入路径就可以访问。 所以我们需要验证用户的登录状态,当用户没有登录的时候,在访问这些没有权限的功能的是我们应该在服务端拒绝访问。 很明显这个检查登录状态会是很多功能点共有的一段逻辑,那么根据之前的开发,很容易就想到用拦截器进行实习,而这里我们使用自定义注解 + 拦截器的形式来解决这种问题。 拦截器拦截所有的请求,但是只处理带有该注解的方法。 我们想自定义解决的话是需要借原创 2020-05-25 16:14:32 · 180 阅读 · 0 评论