赞
踩
目录
导入启动项,在application.properties写入相关的配置。可以使用声明式事务控制
安装Redis
启动Redis:在cmd下切到redis目录:cd C:\Program Files\Redis-x64-3.0.504然后使用命令:redis-server redis.windows.conf
在另一个cmd下使用redis-cli来使用redis
修改配置文件
哪台机器能访问这个redis,因为做分布式所以要设置所有机器能访问
设置密码
可以将redis加入系统的服务(加不进去不知道为啥,每次用手动启动)
Redis和springboot集成:
依赖:
添加Jedis依赖
添加Fastjson依赖:序列化时将java对象转化成json字符串写到redis服务器中(序列化后可读,方便查看)
配置:
通过ConfigurationProperties注解可以将配置文件有关redis的配置项读取进来并赋值给相应属性
将代表Redis配置信息的RedisConfig的类通过@Component添加到容器中
通过JedisPool获取Jedis对象,通过Jedis对Redis进行操作,在插入数据的时候,将bean转换为string插入,获取数据的时候将str转换为对应的bean(使用fastjson)
出现的问题:多个人向redis中插入的数据key相同会将数据覆盖?
解决思路:在进行插入数据的时候加入前缀,比如用户数据表,前缀就为USER(前缀可通过插入数据类型的类名获得)
模板模型:接口定义需要实现的功能,抽象类定义通用方法,实现类实现特有的方法.
通过KeyPrefix类来生成带有前缀的key,最终的key为:类名+指定的prefix+原来的key
用户端passMD5加密后传入服务端,服务端得到用户端传来的pass再进行MD5存入数据库。
第一次MD5防止用户密码在网络上传输不安全,第二次MD5若数据库被盗防止被反查找出密码。
静态文件
bootstrap画页面
jquery-validation错误表单验证
layer做弹框
md5
jquery
common应用自己的
登录功能实现:使用正则表达式判断mobile是否格式正确.用户输入密码时,先进行MD5
加固定盐值的加密再进行传输,传到服务端后,服务端根据mobile获取用户信息,包括password和salt,取这个salt对这个密码再进行一次MD5加密,最终和数据库的password比较,若相同登录成功,若不同,登陆失败.
JSR 303 用于对Java Bean 中的字段的值进行验证,使得验证逻辑从业务代码中脱离出来
登录时参数校验
现在需要校验的参数上加@Valid标签
然后在需要校验对象的属性中:
可以使用自带的注解进行参数校验,也可以自己写参数校验规则,如@IsMobile
全部异常处理:
拦截异常以更友好的形式呈现而不是exception的堆栈,捕捉到异常放回Result包装codemsg。在进行登陆的时候,若验证不成功,直接抛异常,将异常交给全局异常来进行处理,代码更加简洁
- /**
- * 在Spring 3.2中,新增了@ControllerAdvice、@RestControllerAdvice 注解,可以用于定义@ExceptionHandler、
- * @InitBinder、@ModelAttribute,并应用到所有@RequestMapping、@PostMapping, @GetMapping注解中。
- * 可以将异常拦截进行处理
- */
- @ControllerAdvice
- @ResponseBody
- public class GlobleExceptionHandler {
-
- @ExceptionHandler(value = Exception.class)
- public Result<String> exceptionHandler(HttpServletRequest request,Exception e){
- if(e instanceof BindException){
- BindException ex = (BindException) e;
- List<ObjectError> error = ex.getAllErrors();
- ObjectError error1 = error.get(0);
- String msg = error1.getDefaultMessage();
- return Result.error(CodeMsg.BIND_ERROR.fillArgs());
- }else{
- return Result.error(CodeMsg.SERVER_ERROR);
- }
- }
- }

- //Token是一个字符串,是一段根据特殊规则生成的唯一的、保存在缓存服务器(如Redis)中的key,这个key对应的value是用户账户
- // 数据。每个用户登录后,服务器生成一个类似Token并缓存,之后用户每次请求中都要带上这个Token,以便实现类似
- // 于HTTP Session的会话跟踪。
把session信息存放到第三方缓存中
在第一次登录的时候,生成一个随机的token,将token:user存入redis中,同时将token存入cookie中返回给客户端,客户端下次请求的时候携带上这个token就可以获取用户信息。将seesion存入缓存中。
问题:每次生成新的token存入redis,怎么把旧的删除
WebMvcConfigurerAdapter
分布式session相关
设置单独的秒杀商品表和秒杀订单表而不是在商品或订单后面加一个标识标识其为秒杀商品:活动很多难以维护
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。