使用步骤
1 在配置文件中进行缓存配置
主要是制定缓存类型和缓存名称
spring.cache.type=Redis
spring.cache.cache-names=redisCache
2 在业务层的实现类中使用@CachePut @Cacheable @CacheEvict进行缓存操作
3 在springboot的启动文件中通过注解@EableCaching启用spring缓存
一些缓存的注意事项
1 缓存注解自调用失效问题:spring的缓存机制也是基于AOP的原理,也就是通过动态代理的技术实现的,自调用的时候并不存在代理对象的调用。
决解方法:1 可以通过两个服务类(service)相互调用
2 直接从Spring IOC容器中获得代理对象来操作
private ApplicationContext applicationContext=null;
再通过一个set方法给applicationContext赋值
UserService userService=application.getBean("userService");
这时候通过这个类再调用自身的方法即可
缓存脏数据
在Redis设置超时时间,实时性要求高的数据超时时间相应的就设置的短一些。
相对于读操作来说,写操作的策略就不同,这时认为缓存不可信,直接从数据库中读取数据再更新。
自定义缓存管理器
1 直接在application.properties中配置缓存管理器的信息
2 不使用springboot创建的缓存管理器,而是通过自己的代码来创建缓存管理器。
在springboot的启动文件中新建一个方法来创建缓存管理器。通过@Bean注解将其加入spring容器
其他知识点
spring使用@Repository来标记DAO类,mybatis使用@mapper来标记DAO类,使用那一个都是可以的。