zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    如何用Python实现网络请求库中的UR解析器,面试必学
    为什么有人说 Python 多线程是鸡肋?
    router-view 与 动态组件 区别
    keep-alive
    vue 客户端渲染和服务端渲染
    js 数组对象深拷贝
    vue template标签
    Jquery中的日历插件
    HTML5中的canvas基本概念及绘图
    HTML5中的音视频处理
  • 原文地址:https://www.cnblogs.com/wuba/p/11458276.html
Copyright © 2011-2022 走看看