需求
用户管理
- 注册
- 登录
- 获取用户详细信息
- 更新用户基本信息
- 更新用户头像
- 更新用户密码
文章分类
- 文章分类列表
- 新增文章分类
- 更新文章分类
- 获取文章分类详情
- 删除文章分类
文章管理
- 新增文章
- 更新文章
- 获取文章详情
- 删除文章
- 文章列表(条件分页)
其他
- 文件上传
环境搭建
- 执行资料中的big_event.sql脚本,准备数据库表
- 创建springboot工程,引入对应的依赖(web、mybatis、mysql驱动)
- 配置文件application.yml中引入mybatis的配置信息
- 创建包结构,并准备实体类
用户管理
注册
Spring Validation
Spring 提供的一个参数校验框架,使用预定义的注解完成参数校验。
全局异常处理
小结
登录
登录认证
令牌就是一段字符串
- 承载业务数据, 减少后续请求查询数据库的次数
- 防篡改, 保证信息的合法性和有效性
JWT-使用
JWT-生成
JWT-验证
拦截器
- 使用拦截器统一验证令牌
- 登录和注册接口需要放行
获取用户详细信息
ThreadLocal
提供线程局部变量
- 用来存取数据: set()/get()
- 使用ThreadLocal存储的数据, 线程安全
- 用完记得调用remove方法释放
更新用户基本信息
参数校验
实体类的成员变量上添加注解
- @NotNull
- @NotEmpty
- @Email
接口方法的实体参数上添加@Validated注解
更新用户头像
url参数校验
更新用户密码
文章分类
新增文章分类
文章分类列表
获取文章分类详情
更新文章分类
分组校验
小结
文章管理
新增文章
参数校验
自定义校验
- 自定义注解State
message、groups、payload - 自定义校验数据的类StateValidation
- 在需要校验的地方使用自定义注解
文章列表(条件分页)
文件上传
登录优化-redis
令牌主动失效机制
- 登录成功后,给浏览器响应令牌的同时,把该令牌存储到redis中
- LoginInterceptor拦截器中,需要验证浏览器携带的令牌,并同时需要获取到redis中存储的与之相同的令牌
- 当用户修改密码成功后,删除redis中存储的旧令牌
SpringBoot集成redis
配置文件配置方式
配置优先级
多环境开发-Profiles
多环境开发-Pofiles-分组
小结
- 单文件配置
‘—’ 通过启动命令,分隔不同环境的配置
spring.config.activate.on-profile 配置所属的环境
spring.profiles.active 激活环境 - 多文件配置
通过多个文件分别配置不同环境的属性
文件的名字为 application-环境名称.yml
在application.yml中激活环境 - 多环境开发-分组
按照配置的类别,把配置信息配置到不同的配置文件中
- application-分类名.yml
在application.yml中定义分组 - spring.profiles.group
在application.yml中激活分组 - spring.profiles.active