重剑无锋,大巧不工 SpringBoot --- 推荐使用CaffeineCache
今天没有图片
在做单系统的情况下,我还是比较喜欢使用Google 的 Guava 来做缓存的,结合 SpringBoot 使用非常简单 :
1 | <dependency> |
再配置 yml :
1 | spirng: |
上述配置了一个 缓存名为 api_cache 的缓存 ,最大数量为300,超时时间为2分钟
接下来,在类中使用注解 @CacheConfig(cacheNames = “api_cache”) 来配置整个类的配置
@Cacheable() 注解在方法上来 开启方法的注解
使用很透明
今天再次使用时发现guava.spec提示过期了,查了下文档,文档原话是这样说的:
@Deprecated
@DeprecatedConfigurationProperty(
reason = “Caffeine will supersede the Guava support in Spring Boot 2.0”,
replacement = “spring.cache.caffeine.spec”
)
原来,在SpringBoot2.0中推荐使用Caffeine,表达式就是spring.cache.caffeine.spec
更改的方法很简单,改下依赖包,换个配置名,又可以愉快的额使用了:
1 | <dependency> |
更新配置:
1 | spirng: |
通常SpringBoot默认的keyGenerator 是SimpleKeyGenerator,这个策略是以参数作为key值,如果参数为空的,就会返回SimpleKey[]字符串,这对于很多无参的方法的就有问题了
我们需要重新这个keyGenerator,实现 org.springframework.cache.interceptor.keyGenerator
这个接口即可,将key值设置为类名+方法名+参数名,这样就不会冲突了
1 |
|
感觉无缝切换,继续使用吧!!!