公开课——2级缓存及装饰模式

1. 2级缓存

jvm内置的缓存: ehcash
共享缓存 : redis
在这里插入图片描述
双重保证,当redis挂了 还有EHCash

1.早期项目如果是 单点应用,不需要redis实现二级缓存。
2.如果是一个集群的情况下,建议采用redis实现缓存。
3.早期时候,定义好一级缓存,以后新增二级缓存的时候 不会改变一级缓存代码。
4.装饰模式 不改变原有对象功能,来实现增强

2. mybatis的2级缓存

在这里插入图片描述

3.什么是装饰者模式

在不改变原有对象的基础上附加功能,相比生成子类更灵活。

4.装饰者模式应用场景

动态的给一个对象添加或者撤销功能。

5.装饰者模式优缺点

优点:可以不改变原有对象的情况下动态扩展功能,可以使扩展的多个功能按想要的顺序执行,以实现不同效果。
缺点:更多的类,使程序复杂

6.装饰者模式定义

(1)抽象组件:定义一个抽象接口,来规范准备附加功能的类
(2)具体组件:将要被附加功能的类,实现抽象构件角色接口
(3)抽象装饰者:持有对具体构件角色的引用并定义与抽象构件角色一致的接口
(4)具体装饰:实现抽象装饰者角色,负责对具体构件添加额外功能。
protected ComponentGateway componentGateway;
setComponentGateway(ComponentGateway componentGateway)

7. 原理图

在这里插入图片描述
先查二级缓存, 如没有 在查一级缓存,若没有,在查数据库。

8.实例

1.接口抽象组建
在这里插入图片描述
2.刚开始 只有 一级缓存
在这里插入图片描述
在这里插入图片描述
3. 新增了 二级测试
先查询 二级,有值的话,直接翻出去
否则 查询一级缓存, 把值赋给 二级缓存,再把二级缓存翻出去
在这里插入图片描述
在这里插入图片描述
4. 测试

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

9. 装饰模式 和 代理模式 区别

代理模式: 在方法之前 和 之后 实现处理, 方法实现增强 隐藏真实方法的真实性。 保证安全
装饰模式: 不改变原有的功能,实现增加 不断新增很多装饰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值