SpringBoot加入Guava Cache实现本地缓存

Posted wuba

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot加入Guava Cache实现本地缓存相关的知识,希望对你有一定的参考价值。

也可以参考  这里

在pom.xml中加入guava依赖

1     <dependency>
2       <groupId>com.google.guava</groupId>
3       <artifactId>guava</artifactId>
4       <version>18.0</version>
5     </dependency>

创建一个CacheService,方便调用

1 public interface CacheService 
2     //
3     void setCommonCache(String key,Object value);
4     //
5     Object getCommonCache(String key);
6 

其实现类

 1 import com.google.common.cache.Cache;
 2 import com.google.common.cache.CacheBuilder;
 3 import com.wu.service.CacheService;
 4 import org.springframework.stereotype.Service;
 5 import javax.annotation.PostConstruct;
 6 import java.util.concurrent.TimeUnit;
 7 @Service
 8 public class CacheServiceImpl implements CacheService 
 9 
10     private Cache<String,Object> commonCache=null;
11 
12     @PostConstruct//代理此bean时会首先执行该初始化方法
13     public void init()
14         commonCache= CacheBuilder.newBuilder()
15                 //设置缓存容器的初始化容量为10(可以存10个键值对)
16                 .initialCapacity(10)
17                 //最大缓存容量是100,超过100后会安装LRU策略-最近最少使用,具体百度-移除缓存项
18                 .maximumSize(100)
19                 //设置写入缓存后1分钟后过期
20                 .expireAfterWrite(60, TimeUnit.SECONDS).build();
21     
22 
23     @Override
24     public void setCommonCache(String key, Object value) 
25         commonCache.put(key,value);
26     
27 
28     @Override
29     public Object getCommonCache(String key) 
30         return commonCache.getIfPresent(key);
31     
32 

 

以上是关于SpringBoot加入Guava Cache实现本地缓存的主要内容,如果未能解决你的问题,请参考以下文章

企业级 SpringBoot 教程 (十三)springboot集成spring cache

利用guava来实现本地的cache缓存

Guava 源码分析之Cache的实现原理

Guava Cache 实现与源码分析

Guava Cache的实现与源码分析

guava collection/cache初探