1.ssm项目开发中,异常是如何处理的?出现异常如何响应客户端的?
统一异常处理器,控制器增强类,@ControllerAdvice注解,结合@ExceptionHandler注解,捕获到Controller层方法抛出的异常。
然后根据具体类型判断,分别对应封装不同的响应结果、提示信息,@ResponseBody返回JSON数据给前端。
2.用户端登录流程
1.我们前端是部署在Nginx中的,前端发起请求,请求经过nginx
2.通过nginx的反向代理,将请求代理至网关
3.请求到网关之后会经过全局过滤器,全局过滤器判断当前请求url,如果是获取验证码或登录Url,直接放行(这个需要被放行的url集合是通过配置中心配置的,实现了热更新)
4.全局过滤器放行后,请求经过网关的动态路由,会将请求路由至对应的微服务
5.在用户微服务会经过权限拦截器,在拦截器中,如果是需要放行的url也会直接放行
6.请求达到controller中,在service中会:
1.对用户的密码和验证码进行校验,其中验证码是存在redis中的(redis的sessioId做为键,验证码作为值,过期时间设置为5分钟),密码是通过MD5加密加盐处理。
2.如果各项都通过就会根据JWT生成token,返回给前端,token负责存储部分用户信息,token有