Spring 缓存注解@Cacheable 在缓存时候 ,出现了第一次进入调用 方法 ,第二次不调用的异常
代码:
@Override
@Cacheable(value = CACHE_NAME, key = "'CartItemkey_'+#uId")
public List<String> getCartId(Long uId) {//CartItemkey_1
String key = "CartItemkey_"+uId;
try {
List<String> keyStr = (List<String>) redisCache.get(key, List.class);
logger.info("===========================redis 调用===");
return keyStr;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
出现的原因就:
在第一次调用时候什么都没查到时候 返回 null
其实null 也是一种数据 ,
这时候就被缓存起来了,key:null
所以在你再次调用时候,默认缓存中是有值得,不过这个值是null而已
解决办法:
@Override
@Cacheable(value = CACHE_NAME, key = "'CartItemkey_'+#uId", unless="#result == null")
public List<String> getCartId(Long uId) {//CartItemkey_1
String key = "CartItemkey_"+uId;
try {
List<String> keyStr = (List<String>) redisCache.get(key, List.class);
logger.info("===========================redis 调用===");
return keyStr;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
Spring 缓存注解@Cacheable 在缓存时候 ,出现了第一次进入调用 方法 ,第二次不调用的异常的更多相关文章
- Spring之缓存注解@Cacheable
https://www.cnblogs.com/fashflying/p/6908028.html https://blog.csdn.net/syani/article/details/522399 ...
- 详解Spring缓存注解@Cacheable,@CachePut , @CacheEvict使用
https://blog.csdn.net/u012240455/article/details/80844361 注释介绍 @Cacheable @Cacheable 的作用 主要针对方法配置,能够 ...
- Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用(转)
原文地址:https://www.cnblogs.com/fashflying/p/6908028.html 从3.1开始,Spring引入了对Cache的支持.其使用方法和原理都类似于Spring对 ...
- Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用
从3.1开始,Spring引入了对Cache的支持.其使用方法和原理都类似于Spring对事务管理的支持.Spring Cache是作用在方法上的,其核心思想是这样的:当我们在调用一个缓存方法时会把该 ...
- Spring Boot缓存注解@Cacheable、@CacheEvict、@CachePut使用
从3.1开始,Spring引入了对Cache的支持.其使用方法和原理都类似于Spring对事务管理的支持.Spring Cache是作用在方法上的,其核心思想是这样的:当我们在调用一个缓存方法时会把该 ...
- Spring缓存注解@Cacheable
@Cacheable @Cacheable 的作用 主要针对方法配置,能够根据方法的请求参数对其结果进行缓存 @Cacheable 作用和配置方法 参数 解释 example value 缓存的名称, ...
- java spring 使用注解来实现缓存
这里举例使用spring3.1.4 + ehcache 注解的方式使用cache 是在spring3.1加入的 使用方法: 1.ehcache依赖+spring依赖 <!-- ehcache依赖 ...
- 缓存注解@Cacheable、@CacheEvict、@CachePut使用及注解失效时间
从3.1开始,Spring引入了对Cache的支持.其使用方法和原理都类似于Spring对事务管理的支持.Spring Cache是作用在方法上的,其核心思想是这样的:当我们在调用一个缓存方法时会把该 ...
- springboot缓存注解——@Cacheable和@CacheConfig
@Caching :制定多个缓存规则 @Cacheable 和 @CachePut 同时标注时 ,@CachePut导致还是会走方法跟数据库交互 //根据lastName查,并将结果缓存,并且可以用于 ...
随机推荐
- 挖一挖C#中那些我们不经常使用的东西之系列(1)——ToDictionary,ToLookup
这个系列我们看看C#中有哪些我们知道.可是又不知道怎么用.又或者懒得去了解的东西,比方这篇我们要介绍的toDictionary 和ToLookup. 从图中我们看到有四个ToXXX的方法,当中ToAr ...
- MATLAB 的运算符
在MATLAB中,提供了丰富的运算符,运算主要包括算数运算.关系运算和逻辑运算. 一.算数运算符 分为标量和数组运算和矩阵运算.需要注意:对于a/b,是a除以b,对于a\b,是b除以a.在MATLAB ...
- struts提交action乱码
没下雪但冷的让人直打哆嗦的天气,冷醉了的教训!! 问题解决步骤: 1.首先确认页面编码是否准确,并且是否与struts编码配置一样,就算是gbk对GBK,最好大小写保持一样 2.尝试先转码一次吧! ...
- 【MyBatis】MyBatis分页插件PageHelper的使用
好多天没写博客了,因为最近在实习,大部分时间在熟悉实习相关的东西,也没有怎么学习新的东西,这周末学习了MyBatis的一个分页插件PageHelper,虽然没有那么的强大(我在最后会说明它的缺点),但 ...
- css学习之overlay
CSS Overlay技巧 作者:大漠 日期:2013-11-10 点击:8 本文由大漠根据SARA SOUEIDAN的<CSS OVERLAY TECHNIQUES>所译,整个译文带 ...
- 工作总结 管理NuGet 程序包 中 找不到 npoi 怎么办
在设置里 勾选 可用程序包源
- Titel Block不显示
在原有原理图上New page时不显示Titel Block 解决办法:两种(1)(2) 方法1.在新建的原理图上右键选择Schematic Page Properties,按下图勾选即可 方法2.进 ...
- hdu1873 看病要排队 优先队列
看病要排队 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status ...
- Charles 的几个调试技巧
Charles 是一个网络调试的代理工具,类似 Windows 下的 Fildder,这里介绍下几个常用的调试技巧,使用的版本是 Charles 4. 1.移动端抓包 在移动开发中,经常会遇到在手机上 ...
- FreeBSD长模式不兼容
二进制转换与此平台上的长模式不兼容.此虚拟环境中的长模式将被禁用.因此需要使用长模式的应用程序将无法正常运行.请参见 http://vmware.com/info?id=152 了解更多详细信息. m ...