固然咱们在平时的使用过程过程当中,都是使用redis来作分布式缓存,并且通常在业务逻辑中,接口这种命中率比较低,并且还要考虑缓存淘汰算法的选取,因此通常应用很少。可是spring既然有这么个功能,咱们就来看看,这里参照前辈的Spring5-Design-Patterns来写这篇博客。html
这里须要使用@EnableCaching注解来开启缓存,而后之类还须要一个缓存管理器,这里使用ConcurrentMapCacheManager,这个实现后续再看。git
这里再使用@CachePut("accountCache")来标记这个缓存,可是我看这里面的注解选项,好像没有缓存时间,而后咱们就可使用啦github
输出:redis
可供选择的有这些,简单介绍三种:算法
这里主要使用的有三个注解:spring
@Cacheable 主要针对方法配置。可以依据方法的请求參数对其结果进行缓存
@CachePut 主要针对方法配置,可以依据方法的请求參数对其结果进行缓存,和 @Cacheable 不一样的是,它每次都会触发真实方法的调用
@CachEvict 主要是用来标注在须要清除缓存元素的方法或类上的。当标记在一个类上时表示其中全部的方法的执行都会触发缓存的清除操做缓存
这里能够知道第二次查询的时候,是从缓存中取的,这里的依赖有:less
感受可供选择的仍是比较少的,不是特别实用,在复杂的业务场景前。分布式
参考:htm