- 博客(11)
- 收藏
- 关注
原创 基于SpringCache实现分页查询下的缓存查询
cacheName用于指出缓存组件,key指定一个spEL表达式,通过spEL表达式获取方法参数,prefix表示key前缀字符,以防止单单存在的id会存在重复而误删其他缓存,prefix与key拼接表示需要删除的缓存对应的key。查询的问题是解决了,但是增删改并不知道自己属于哪一页,这导致增删改全部失效,但@CacheEvict中唯一能在此情况下删除缓存的方法就是allEntries = true。既然是对某个方法进行相应删除缓存操作,我们可以通过aop的方式自定义方法删除缓存。
2022-12-19 10:31:49
1185
3
原创 MySQL学习笔记
而深翻页过程中,前面页码也会回表但之后数据会被丢弃,回表IO代价大,因此可以通过覆盖前面索引,只取需要的索引进行回表,随着数据量的增多,该优化效果愈发明显。4)插入意向锁:执行插入操作时,总会检查当前插入操作的下一条记录(已存在的主索引节点)上是否存在锁对象,判断是否锁住了gap,如果锁住了,则判定和插入意向锁冲突,当前插入操作就需要等待,也就是配合上面的间隙锁或者临键锁一起防止了幻读操作。查询过程中,多个条件会一次走索引,期间会回表,此时可以增加联合索引,mysql会执行索引下推,减少不必要IO。
2022-11-25 16:25:35
300
原创 设计模式学习笔记
当不需要全部实现接口提供的方法时,可以设计一个抽象类实现接口,并为该接口中的每个方法提供一个默认实现(空方法),则该抽象类的子类可有选择的覆盖父类的某些方法来实现需求。与类适配器思想大致相同,但是实现上不同。行为模式:模板方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式。结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。创建型模式:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式。
2022-09-23 19:19:30
183
原创 vagrant 报 No space left on device 解决方案
由于默认共享目录包含"../data",会将本地Application Data同步到虚拟机中导致内存不足。一、删除虚拟机中Application Data文件。二、下载插件更新共享目录。
2022-08-05 15:10:49
306
原创 Mockito学习笔记
第一次得知后端开发要写单元测试的时候,心里不禁有个疑惑,这应该是测试人员的工作呀。在学习单元测试的过程中,发现编写单元测试代码费时费力,就等于把完成的代码重写一遍,然后加进去假数据。在了解单元测试的好处时,我发现大家都在说TDD,也就是测试驱动开发。TDD能规范设计原则,更好的解耦各个模块......既然内心的困惑已经解决,那就开始了解单元测试。@Mock对对象进行mock,接管了对象的全部方法,默认不执行实际方法,返回值为基本类型的默认返回值。@Spy默认调用真实对象,仅对桩实现的方法进行mock。...
2022-07-26 10:37:51
697
空空如也
Unrecognized option: --add-opens
2023-05-19
MySQL的地理查询与Java调用三方库地理查询选择哪种方式比较好?
2023-02-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人