在mybatis中使用实现注解模式开启缓存,但mybatis的缓存是存入本地缓存。使用redis二级缓存:
自定义RedisCache:通过mybatis默认的cache源码可知,可以使用自定义Cache类 implement cache接口,并对里面的方法进行实现。
由于redistemplate是由springboot工厂创建,因此不能直接在自定义RedisCache类中注入。
需要创建ApplicationContextUtils工具类获取springboot创建的工厂。
使用redisTemplate,redis的hash类型存入缓存数据
使用redisTemplate,redis的hash类型获取缓存数据
测试:
Mybatis进行增删改后将redis中的缓存清空
缓存在项目中的应用
如果项目中表查询之间没有任何关联查询(单表查询)使用该缓存方式没有问题。
如果是表连接查询(多表查询)过程中现有缓存一定出现问题
在mybatis中解决关联关系查询缓存(及多表之间存在关系)
.xml配置模式使用<cache-ref/>