美文网首页java专题Java 杂谈
使用google的guavaCache来做二级缓存

使用google的guavaCache来做二级缓存

作者: H_Man | 来源:发表于2018-06-20 10:09 被阅读2次

    使用guavaCache做一个缓存,这次主要是使用了定时过期的一个特性,由于存储时间短,所以没有使用redis

    @Component
    public class BaseGuavaCache {
        private static final Logger LOGGER = LoggerFactory.getLogger(BaseGuavaCache.class);
    
        private static LoadingCache<Integer, UserInfoBean> userInfoCache;
        @Autowired
        private IUserService userService;
        
        @PostConstruct
        public void init() {
        
            userInfoCache = CacheBuilder.newBuilder().expireAfterWrite(30, TimeUnit.SECONDS).build(new CacheLoader<Integer, UserInfoBean>() {
                @Override
                public UserInfoBean load(Integer userId) throws Exception {
                    UserInfoBean userInfoByCache = userServiceV2.getUserInfoByCache(userId, ConstUtil.RequestType.BACK);
                    return userInfoByCache;
                }
            });
            
        }
    
        
        
        public UserInfoBean getUserInfo(int userId) {
            try {
                return userInfoCache.get(userId);
            } catch (ExecutionException e) {
                LOGGER.error("query userInfo error. userId={}", userId, e);
                return null;
            }
        }
    
    }
    
    
    • 声明创建的缓存类为一个springbean
    • 在缓存类中创建一个GuavaCache存储器LoadingCache,需要传入泛型.
    • 初始化时创建存储器实例
    • 完成

    相关文章

      网友评论

        本文标题:使用google的guavaCache来做二级缓存

        本文链接:https://www.haomeiwen.com/subject/nbctsftx.html