Spring Boot cache backed guava/caffeine
博客专区 > Geek-S 的博客 > 博客详情
Spring Boot cache backed guava/caffeine
Geek-S 发表于8个月前
Spring Boot cache backed guava/caffeine
  • 发表于 8个月前
  • 阅读 238
  • 收藏 2
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: Spring Boot cache backed guava/caffeine

    Spring Boot提供了spring-boot-starter-cache,支持多个缓存实现,如EHCache,Redis,GUAVA etc...,此处以轻量GUAVA为例:

一. 基本使用

0. 首先需要加入依赖,版本根据自己需求指定

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-cache</artifactId>
	<version>${v}</version>
</dependency>
<dependency>
	<groupId>com.google.guava</groupId>
	<artifactId>guava</artifactId>
	<version>${v}</version>
</dependency>

1. 开启缓存,在Application类加入@EnableCaching

2. 通过@Cacheable使用缓存

@Cacheable("{cacheNames}")
public Object needCache() {
	return ...;
}

 

二. 指定缓存参数[以过期时间为例,不同的数据类型要求的缓存时间不同]

Spring boot提供基于application.xx的配置

spring.cache.type=GUAVA
spring.cache.cache-names=cacheName
# 参数参考com.google.common.cache.CacheBuilderSpec
spring.cache.guava.spec=expireAfterWrite=7m

这种配置方式,只能提供一种策略的缓存(如果有直接基于配置配置文件的多种策略配置,请留言),如果不同缓存策略需要通过自定义配置:

@Configuration
public class CacheConfig {

	/**
	 * Define cache strategy
	 * 
	 * @return CacheManager
	 */
	@Bean
	public CacheManager cacheManager() {
		SimpleCacheManager simpleCacheManager = new SimpleCacheManager();
		List<Cache> caches = new ArrayList<>();

		# 缓存5min后失效
		caches.add(new GuavaCache("{cacheName}",
				CacheBuilder.newBuilder().expireAfterAccess(5, TimeUnit.MINUTES).build()));

		simpleCacheManager.setCaches(caches);

		return simpleCacheManager;
	}

}

 

配置完成发现spring推荐使用caffeine取代guava,所以改为使用caffeine作为实现。

 

PS: spring-gs-cachingcache-store-configuration-caffeineben-manes/caffeine

共有 人打赏支持
粉丝 12
博文 74
码字总数 17560
×
Geek-S
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: