摘要:目录: 1.项目集成redis客户端jedis 引入Jedis pom 2.redis连接池构建及调试 1)JedisPoolConfig源码解析 2)JedisPool源码解析 3)JedisPool回收资源 4)封装redisPool 1 public class RedisPool { 2 /
阅读全文
摘要:项目介绍: 整个项目采用分布式的架构设计,包括登录系统、搜索系统(没做)、购物车系统、订单系统、支付系统等。整个项目采用nginx+tomcat来部署,nginx主要用来做反向代理和负载均衡。主要用redis来做登录信息缓存,mysql做数据库。自己参与了登录系统的开发,包括注册、单点登录等功能模块
阅读全文
摘要:容易面试问到。 https://www.cnblogs.com/interdrp/p/7041279.html
阅读全文
摘要:1.string 1)setex +key+时间(单位s)+value:添加数据,设置超时时间,单位是s。 2)psetex +key+时间(单位ms)+value:添加数据,设置超时时间,单位是ms。 3)getrange+key+start(起始下标)+end(终止下标):获取key对应的val
阅读全文
摘要:1.将tomcat复制两份,如下: 2.新建环境变量,如下: 3.修改其中一个的配置文件,另一个保持不变,修改server.xml配置文件如下: 4.修改catalina.bat和startup.bat,如下: 将所有CATALINA_BASE改为CATALINA_2_BASE,将所有CATALIN
阅读全文
摘要:问题: 1.tomcat集群能带来什么? 1).提高服务的性能(一般采用一台机器部署一个tomcat,如果一台机器部署多个tomcat,它们有共享瓶颈,它们要共享网卡、内存、I/O等),并发能力(一台tomcat的http线程池是有限的,根据机器的性能,如果是两台,则能承载的http线程就是两倍),
阅读全文
摘要:lombok:通过简单注解来精简代码达到消除冗长代码的目的。 优点: 1.提高编码效率 2.使代码更简洁 3.消除冗长代码 4.避免修改字段名字时忘记修改方法名 5.IDE必须支持lombok,否则IDE会报错 原理: 通过修改AST(语法树),增加set和get,生成字节码文件。 常用注解: 1.
阅读全文
摘要:2-8原则:80%的业务访问集中在20%的数据上。 缓存分类:本地缓存,远程单机缓存,远程分布式缓存。 思考问题: 1.具有哪种业务特点的数据使用缓存,本地缓存,远程缓存? 2.分布式缓存在扩容时会遇到什么问题,如何解决? 3.分布式缓存的算法都有哪几种?各有什么优缺点 初级业务架构: 第一步演进:
阅读全文
摘要:功能介绍: 前台功能: 1.创建订单 controller层实现: 传入userId和收货地址shippingId,由后台自动创建订单。 1 @RequestMapping("create.do") 2 @ResponseBody 3 public ServerResponse create(Htt
阅读全文
摘要:功能介绍: 1.支付宝对接 2.支付回调 3.查询支付状态 学习目标: 1.熟悉支付宝对接核心文档,调通支付宝支付功能官方Demo 2.解析支付宝SDK对接源码 3.RSA1和RSA2验证签名及加解密 4.避免支付宝重复通知和数据校验 5.natapp外网穿透和tomcat remote debug
阅读全文
摘要:ftp服务器搭建(windows): vsftpd简介: vsftpd是“very secure FTP daemon”的缩写,是一个完全免费的、开放源代码的ftp服务器软件。 下载地址: http://download.happymmall.com/FTPServer.rar 安装启动步骤: 1.
阅读全文
摘要:项目中用到的md5工具类: 1 package com.mall.util; 2 3 import org.springframework.util.StringUtils; 4 5 import java.security.MessageDigest; 6 7 /** 8 * Created by
阅读全文
摘要:功能: 1.添加地址 controller层用到了SpringMVC中的数据绑定的对象绑定方式: 1 @RequestMapping(value = "add.do", method = RequestMethod.POST) 2 @ResponseBody 3 //这里直接传shipping对象,
阅读全文
摘要:功能: 1.加入商品或更新商品数量 controller层实现: 传入userId,productId和商品数量,进service层判断,如果productId已经传入,则说明购物车中已经有该商品,则只更新商品数量即可,如果没有传入productId,则说明购物车中没有改商品,则直接新增即可。 1
阅读全文
摘要:为什么要使用pageHelper:https://www.cnblogs.com/ljdblog/p/6725094.html 配置文件详解:https://www.cnblogs.com/cksvsaaa/p/6036068.html,https://www.cnblogs.com/digdeep
阅读全文
摘要:POJO,BO,VO的关系: 简单理解:http://www.blogjava.net/vip01/archive/2007/01/08/92430.html 全面:https://www.cnblogs.com/yxnchinahlj/archive/2012/02/24/2366110.html
阅读全文
摘要:官方文档(FQ访问):http://google.github.io/guava/releases/snapshot-jre/api/docs/ 使用详情: 1.Set<Category> categorySet = Sets.newHashSet(); 2.List<Integer> catego
阅读全文
摘要:功能: 前台: 1.产品搜索 controller层实现:根据关键字或分类id进行搜索。 1 /** 2 * 前台搜索商品列表:搜索,分页,排序 3 * @param keyword 搜索关键字 4 * @param categoryId 分类id 5 * @param pageNum 页码 6 *
阅读全文
摘要:功能: 1.增加分类 2.修改分类名字 3.获取当前子分类 4.获取当前分类的所有子分类(递归获取) controller层实现: 1 @RequestMapping(value = "get_category_and_deep_children_category.do", method = Req
阅读全文
摘要:官方:http://ifeve.com/google-guava-cachesexplained/ 理解:https://segmentfault.com/a/1190000007300118 项目中用到cache的例子: 1 public class TokenCache { 2 3 //打印日志
阅读全文