Java秒杀项目——第二章 用户登录模块

2.1 两次md5

记录:
客户端 code = MD5(salt + password)
数据库db 存MD5(salt + code)
两次md5加密

2.3 登录功能实现下

service层调用luserService…login() : userMobile作为id 调用server层getbyid找到对应的user对象

2.4 jsr303参数校验

依赖包:

org.springframework.boot
spring-boot-starter-validation

1、在需要参数校验的vo类参数前加入@Valid 注解
2、将对应的校验注解放在Vo类对应参数上。
自定义注解参数校验:
1、 自定义注解
在@Constraint(validatedBy = 指定参数执行校验的类
该类需要 实现ConstraintValidator<IsMobile, String>接口<使用该类的注解,被校验的字段类型>
重写initialize方法,获得该参数是否是required必填的。
重写isVaild方法,返回boolean,写参数校验逻辑。
2、该注解的成员 default指定该注解对应的错误提示信息。

2.5 自定义异常处理返回友好的参数

1、@ControllerAdvice 自定义接受异常类
@@ExceptionHandler(value=Exception.class) 接受异常的方法(这个方法接受所有异常,因为所有异常都是Excption的子类)
取第一个错误,设置绑定异常,用String.format填入相关的参数。
2、定义一个全局异常类,传入CodeMsg对的,用来直接向外抛出异常,抛出的异常被@controllerAdvice类接受处理。

2.6分布式session

多台应用服务器,一台服务器的redis专门保存token
生成token
1、uuid包,
2、new cookie生成设置过期时间,与redis的key的过期时间一致,设置作用域
3、response.addCookie(cookie) controller中的httpservletResponse自动填入参数。
获取token
1、controller 参数使用注解@CookieValue,获取指定名称的cookie 注入到参数
2、参数使用注解@requestParam获取指定名称的参数,注入到参数

2.7 分布式session cookie

通过每次访问重新设置cookie延长cookie的有效时间。
原来通过Userservice.getBytoken通过token获取user对象
改进:
@Configuration声明配置类 并且继承WebMvcConfigurerAdapter 重写 argumentResolver方法,add一个实现相关接口的类。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值