04 2020 档案
Redis分布式锁的正确姿势
摘要:1. 核心代码: import redis.clients.jedis.Jedis;import java.util.Collections;public class RedisUtil { private static final String LOCK_SUCCESS = "OK"; priva
阅读全文
java面试题二
摘要:十、Spring/Spring MVC 90.为什么要使用 spring? 1.方便解耦,便于开发(Spring就是一个大工厂,可以将所有对象的创建和依赖关系维护都交给spring管理) 2.spring支持aop编程(spring提供面向切面编程,可以很方便的实现对程序进行权限拦截和运行监控等功能
阅读全文
Java中简单工厂模式,工厂模式,抽象工厂模式,策略模式和适配器模式学习
摘要:1. 简单工厂模式 简介:简单工厂模式指在生产不同的产品的时候,通过类型在工厂中创建的不同产品的实例。 总结:简单工厂模式最大的优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。但是当需求变动的时候,需要对原有的类进行修改,违背了开
阅读全文
java静态代理和动态代理
摘要:1. 静态代理 静态代理的实现类似于多态的实现,他是通过在代理类中构造了实现类的实例,交给了代理类去调用。 代码如下: 2. 动态代理 动态代理通过实现InvocationHandler接口,重写invoke方法实现。 3. 动态代理的意义 当你在一个接口中调用方法的时候,需要拓展这个方法,但是如果
阅读全文
docker部署springcloud项目
摘要:1. 准备工作 项目中用到了redis(3.2),mysql(5.7),nginx,elasticsearch(5.5.0),jdk(1.8)。 将项目中的properites或yml中的配置信息全部配置成默认的, 将生成的jar包上传到/usr/local/src/下面 2. 创建Dockerfi
阅读全文
Reids的缓存穿透和雪崩及解决方案
摘要:1. 缓存穿透 指redis内存数据库中没有,访问持久层获取数据的过程。 解决方案: 1. 布隆过滤器。将所有可能存在的数据哈希到一个足够大的bitap中,不存在的时候被这个bitmap拦截掉,从而避免了访问持久层的压力。 2. 设置空值法,查询到的数据为空或者异常时,将这个数据的value设置为空
阅读全文