如何使用Spring框架的缓存体系
声明式缓存
在Spring中使用缓存的方式是声明式缓存, 只需要三步配置即可启用:
缓存声明
在需要缓存的方法上以注解的形式标识.
缓存配置
显式或隐式配置缓存数据存储后端(Redis, ConcurrentHashMap等).
在@Configuration配置类中加上@EnableCaching, 在应用范围内启用注解.
三级缓存策略定制
从上到下, 依次可以进行三次缓存策略的设定, 每一层都会覆盖上层的默认设定:
全局范围的定制: 配置在CacheManager和KeyGenerator中.
类级别的定制: 使用@CacheConfig注解;
方法级别的定制。
Key生成策略
说到底最终还是要以key-value的形式写到后端存储中, 那么Spring的Key生成策略就是值得考虑的. Spring默认的KeyGenerator使用以下算法:
如果没有参数, 返回SimpleKey.EMPTY
如果只有一个参数, 直接返回参数实例.
如果有多个参数, 那么返回一个包含所有参数的SimpleKey