大事件

59 阅读3分钟

1.用户注册接口的参数校验:

①添加validation依赖

image.png

②参数前加上@Pattern注解

image.png

③controller类前面加上@Validated注解

2.登录认证 ①使用拦截器统一验证令牌

image.png ②登录和注册接口需要放行

image.png

3.TreadLocal

image.png

多个用户访问时,当请求到达Tomcat之后,服务器会为每一个用户开辟一个线程用来来提供服务,这样①可以减少参数的传递(参数无需声明)②可以在同一个线程执行的代码间进行共享数据,例如可以把拦截器中的数据共享到controller,service和dao等进行使用 例如在为1提供服务时,会把拦截器中的prehandle方法加载到黑色线程进行执行,拦截器放行后,会依次调用controller,service和dao中的add方法进栈执行,绿色同理,从而做到线程隔离。

image.png

使用TreadLocal来优化 获取用户详细信息 的代码 ①用来存取数据的方法:get()/set() ②使用TreadLocal存储的数据,是线程安全的 ③用完记得调用remove方法释放,不然可能发生内存泄漏

4.更新用户基本信息 1)主要逻辑 浏览器给我们携带id,username,email等数据,并且是在请求体中以json格式携带过来的,因此可以把这些数据封装到一个实体类对象User中进行接收,此时为了让框架能够自动的把请求体里的json数据转化为实体类对象,需要在参数前面添加一个@RequestBody注解,方法声明好之后,只需要在方法体内调用service层的方法完成更新即可。

2)参数校验 实体类参数校验的步骤: A.在实体类的成员变量上添加注解①NotNull②NotEmpty③Email B.接口方法的时提参数上添加@Validated注解 image.png

5.@PathVariable注解的作用 image.png

image.png

6.为了在运行的时候让不同的请求都能按照对应的规则校验参数,需要把这样的规则进行分组

image.png

7.自定义注解的校验过程 ①自定义注解State ②自定义校验数据类StateValidation实现ConstraintValidator接口 ③在需要校验的地方使用自定义注解

8.文件上传第三方服务通用思路

image.png

9.令牌主动失效机制 ①登录成功后,给浏览器响应令牌的同时,把该令牌存储到redis当中 ②LoginInterceptor拦截器中,需要验证浏览器携带的令牌,并同时需要获取到redis中存储的与之相同的令牌 ③当用户修改密码成功后,删除redis中存储的旧令牌

10.项目部署

image.png

11.springboot属性配置方式,修改端口号( 优先级:命令行参数 > 环境变量 > jar包所在目录下的application.yml > resources目录下的application.yml ) (1)命令行参数方式,在命令行jar包名字后面加上--server.port=9999 (2)环境变量方式(修改完重新启动cmd)

image.png (3)外部配置文件方式( jar包所在目录下的application.yml )

image.png

(4)resources目录下的application.yml

12.SpringBoot多环境开发-基本使用

image.png

image.png

image.png

13.SpringBoot多环境开发-profiles-分组

image.png