java - getIfPresent 咖啡因返回 null
问题描述
@Autowired
Cache<Object, Object> caffeineCache;
private void saveRequestToStorage(String key, Object value) {
caffeineCache.put(key, value);
}
public Object getObjectFormInStorage(String key) {
return Optional.ofNullable(caffeineCache.getIfPresent(key)).orElseThrow(()
-> new MbNotFoundException("error.msg.request.storage.not.found"));
}
我在方法 1 中将值缓存并在方法 2 中获取它,但方法在方法 1 中使用相同的键返回 null。任何人都可以帮助我吗?
下面是配置
@Bean
public Caffeine caffeineCacheBuilder(LocalCacheConfigurationProperties properties) {
return Caffeine.from(properties.getCaffeine().getSpec());
}
@Bean
public Cache<Object, Object> caffeineCache(Caffeine caffeineCacheBuilder) {
return caffeineCacheBuilder.build();
}
@Bean
public CacheManager localCacheManager(Caffeine caffeineCacheBuilder, LocalCacheConfigurationProperties properties) {
CaffeineCacheManager cacheManager = new CaffeineCacheManager();
if (StringUtils.isEmpty(properties.getCacheNames())) {
cacheManager.setCacheNames(null); // dynamic
} else {
cacheManager.setCacheNames(Arrays.asList(properties.getCacheNames()));
}
cacheManager.setCaffeine(caffeineCacheBuilder);
return cacheManager;
}
解决方案
配置有点奇怪..试试这个
推荐阅读
- python-3.x - SqlAlchemy“合成”相关模型
- java - RecyclerView 里面的 RecyclerView 弄错了 getItemCount()
- c - 这个语句在 C 中是如何工作的:a=a++?
- python - 第三次 lambda 失败时触发事件
- python - Python正则表达式搜索字母数字字符和正斜杠
- c++ - GNU 编译器:过程入口点...无法定位 - 在 g++ 升级后
- java - 非堆空间中的 Java 内存泄漏
- javascript - 使用javascript从tr td内部访问输入类型文本值
- javascript - 将全局数组转为局部数组并在函数之间传递
- dataframe - spark写入带有二进制列的csv文件