第七章 企业项目开发--本地缓存guava cache
2016-01-18 13:58
351 查看
1、在实际项目开发中,会使用到很多缓存技术,而且数据库的设计一般也会依赖于有缓存的情况下设计。
常用的缓存分两种:本地缓存和分布式缓存。
常用的本地缓存是guava cache,本章主要介绍guava cache在项目中的使用。
关于常用缓存以及每种缓存常用场景的介绍,之后可以去查看我记录的"Java缓存相关"系列博客。链接如下:
《第一章 常用的缓存技术》
2、实际使用
本项目的代码基于第六章的代码进行构建,这里只列出修改过的代码:
View Code
但是,为了在guava cache的使用中不抛出异常,我们这里直接使用下边这句就好了,由mybatis将[]返回就好了。
常用的缓存分两种:本地缓存和分布式缓存。
常用的本地缓存是guava cache,本章主要介绍guava cache在项目中的使用。
关于常用缓存以及每种缓存常用场景的介绍,之后可以去查看我记录的"Java缓存相关"系列博客。链接如下:
《第一章 常用的缓存技术》
2、实际使用
本项目的代码基于第六章的代码进行构建,这里只列出修改过的代码:
LoadingCache<String, List<Admin>> adminListCache = CacheBuilder.newBuilder() .expireAfterWrite(20, TimeUnit.MINUTES)// 缓存20分钟 .maximumSize(1000)// 最多缓存1000个对象 .build(new CacheLoader<String, List<Admin>>() { public List<Admin> load(String username) throws Exception { //1、下边这样null的话,不抛异常 List<Admin> admins = adminDao.getUserByName(username); //System.out.println(admins);//如果admins为空,不会返回null,而是返回[] if(CollectionUtils.isEmpty(admins)){ System.out.println(admins+"-->"); return null; } return admins; //2、但是如果这里查询出来的结果为null的话,也没关系 //return adminDao.getUserByName(username); //3、如果这里直接返回null,就会出现com.google.common.cache.CacheLoader$InvalidCacheLoadException //return null; } });
View Code
但是,为了在guava cache的使用中不抛出异常,我们这里直接使用下边这句就好了,由mybatis将[]返回就好了。
return adminDao.getUserByName(username);
相关文章推荐
- Android中的事件处理机制
- 关于js单线程的问题
- java160116StringTest2
- win32编程 画图
- c# 扩展方法奇思妙用
- JAVA并发处理经验(四)并行模式与算法5:并行排序模式-希尔排序
- java160116StringTest
- java160116StringMethodDemo
- JS 一定要放在 Body 的最底部么?聊聊浏览器的渲染机制
- 线性代数与MATLAB2
- Yii 常量的轻松管理
- 决策树系列之一决策树的入门教程
- 6、模型Bean:Model Bean
- Yii 自动设置模型的字段值
- 【第十二章】零配置 之 12.2 注解实现Bean依赖注入 ——跟我学spring3
- java160116StringDemo
- linux 常用基本命令之十一 du
- Scala 文件和正则表达式 快学Scala 第九章习题答案
- [JS脚本]ajax status 错误定义
- CentOS下MySQL忘记root密码解决方法【转载】