springboot 使用缓存
来源:互联网 发布:国家电网数据分析师 编辑:程序博客网 时间:2024/06/05 20:02
Spring 使用缓存,在不明确表明使用的cacheManager时,使用系统默认方案。可供选择的方案有:AbstractCacheManager, AbstractTransactionSupportingCacheManager, CaffeineCacheManager, CompositeCacheManager, ConcurrentMapCacheManager, EhCacheCacheManager, GuavaCacheManager, JCacheCacheManager, NoOpCacheManager, SimpleCacheManager, TransactionAwareCacheManagerProxy
常用GuavaCache
方式一:
在一个component里定义如下:
private static LoadingCache<String, List<DictItem>>cache =null;
public void init(){ cache = CacheBuilder.newBuilder().maximumSize(1000).refreshAfterWrite(1, TimeUnit.DAYS).build(new CacheLoader<String, List<DictItem>>() {@Overridepublic List<DictItem> load(String key) throws Exception {Map<String, List<DictItem>> map=utilDao.getDicts();map.forEach((K,V)->{cache.put(K, V);});return cache.get(key);}}); Map<String, List<DictItem>> map=utilDao.getDicts();map.forEach((K,V)->{cache.put(K, V);}); }第一次查询是若无,会调用load方法加载,使用的时候,只要:
cache.get(fldms[i])即可。
方式二:
事先不知道缓存里存什么。产生时才存入:
定义缓存先:
publicstaticfinal StringUSER_CACHE ="CACHE_KEY";
@Bean
public Cache reportCache() {
return new GuavaCache(USER_CACHE, CacheBuilder.newBuilder()
.maximumSize(10)
.expireAfterWrite(1, TimeUnit.DAYS)
.build());
}
然后在产生要缓存的数据的方法里:
@Cacheable(CacheConfig.USER_CACHE)
public Map<String,Item> getCacheMap(){
return getCacheMap();
}
@Cacheable表示方法的结果是缓存的,下次调用方法时,直接从缓存里取数据。而不是真正执行方法
@CachePut(CacheConfig.USER_CACHE)
public Map<String,Item> refreshCache(){
return getCacheMap();
}
@CachePut 更新缓存里对应的值一直不太会编辑代码格式。抱歉。
- springboot 使用缓存
- Springboot中使用缓存
- SpringBoot--使用Redis缓存
- Springboot中使用缓存
- SpringBoot--使用Redis缓存
- SpringBoot中使用数据缓存
- SpringBoot中使用Redis实现缓存
- SpringBoot--使用redis缓存(1)
- SpringBoot--使用redis做缓存(2)
- springboot下及其方便的使用缓存
- SpringBoot项目中使用redis缓存
- SpringBoot 缓存
- SpringBoot 缓存
- springboot 缓存
- 1 Springboot中使用redis,自动缓存、更新、删除
- 3 Springboot中使用redis,redis自动缓存异常处理
- springboot的缓存技术
- SpringBoot-缓存技术1
- Spring Boot 1--新建简单Hello Spring Boot案例
- (转) java web 项目启动开启 socket server
- springmvc 定时器2
- Struts2学习之一
- 关于Spring 代码中执行事务回滚
- springboot 使用缓存
- 关于多个页面同样内容的引入
- 论文中word2010下目录的生成及多级列表的设置
- 完数
- (c++)编写一个程序,输入a、b、c三个值,输出其中最大值。
- 单例设计模式
- 【嵌入式学习笔记二】烧录制作好的镜像到4412开发板中
- Hadoop YARN配置参数剖析(2)—权限与日志聚集相关参数
- Guice简明教程