赞
踩
一、项目简介
使用技术:1.SpringBoot+mybatis+redis+RabbitMq+thymeleaf
功能:
1.springBoot的环境搭建
2.集成Thtmeleaf,Result结果封装
3.集成 mybatis+Druid
4.集成Jedis+Redis的安装,通用缓存key封装
登陆 数据库的设计 明文密码的两次md5 jsr303参数校验 +全局异常处理器 分布式session
Jmeter 压测 自动以变量模拟多次用户
页面优化技术:
页面缓存 +URL缓存+对象缓存
5.页面静态化,前后端分离
6.资源静态化
.cdn
7接口优化 异步下单
8redis预减库存 减少数据库的访问
内存标记减少redis的访问
RabbitMQ队列缓冲,异步下单,增强用户体验
RabbitMQ安装与springBoot集成
二、功能实现
1.实现用户登陆
/** * @Author:zhangyx * @Date:Created in 22:182018/11/13 * @Modified By: */ @Controller @RequestMapping("/login") public class LoginController { @Autowired MiaoshaUserService miaoshaUserService; @Autowired private RedisService redisService; //日志 private static Logger log= LoggerFactory.getLogger(LoginController.class); @RequestMapping("/to_login") public String toLogin(){ return "login"; } @RequestMapping("/do_login") @ResponseBody public Result<Boolean> doLogin(HttpServletResponse response, LoginVo loginVo){ //log.info(loginVo.toString()); System.out.println(loginVo.toString()); //参数校验 String passinput=loginVo.getPassword(); String mobile=loginVo.getMobile(); if(StringUtils.isEmpty(passinput)){ //return Result.error(CodeMsg.PASSWORD_EMPTY); throw new GlobelException(CodeMsg.PASSWORD_EMPTY); } if(StringUtils.isEmpty(mobile)){ //return Result.error(CodeMsg.MOBILE_EMPTY); throw new GlobelException(CodeMsg.MOBILE_EMPTY); } if(!ValidatorUtil.isMobile(mobile)){ // return Result.error(CodeMsg.MOBILE_ERROR); throw new GlobelException(CodeMsg.MOBILE_ERROR); } miaoshaUserService.login(response,loginVo); return Result.success(true);
三、登陆时加密功能
加密使用md5进行加密:
1.用户端:PASSWORD=MD5(明文+固定的Salt)
2.服务端:PASSWORD=MD5(用户输入的+随机salt)
/** * @Author:zhangyx * @Date:Created in 22:062018/11/13 * @Modified By: */ public class MD5Util { public static String md5(String src){ return DigestUtils.md2Hex(src); } private static final String salt="1a2b3c4d"; public static String inputPassToFromPass(String inputPass){ String str=""+salt.charAt(0)+salt.charAt(2)+inputPass+salt.charAt(5)+salt.charAt(4); return md5(str); } public static String formPassToDbPass(String input,String salt){ String frompass=inputPassToFromPass(input); String dbpass=""+salt.charAt(0)+salt.charAt(2)+frompass+salt.charAt(5)+salt.charAt(4); return dbpass; } public static void main(String[] args) { String s=MD5Util.formPassToDbPass("123456","1a2b3c4d"); System.out.println(s); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。