SpringBoot——关于Cache缓存获取值后修改的问题「建议收藏」

SpringBoot——关于Cache缓存获取值后修改的问题「建议收藏」SpringBoot——关于Cache缓存获取值后修改的问题

大家好,又见面了,我是你们的朋友全栈君。

使用Spring缓存时遇到一个问题,问题如下:

在使用@Cacheable注解获取缓存中的值之后,将获取到的值进行修改,之后再次通过缓存获取该对象时,发现缓存中的值也被修改了。

来看一下代码:

 @Cacheable(cacheNames = "userCache", key = "#key")
    public User getCache(String key) {
        //获取最新数据
        return getNewData(key);
    }

上边的代码意思就是:通过参数key获取缓存中的User对象,如果缓存中没有就会执行代码getNewData(key);进行返回并进行缓存。

在调用该方法之后,将返回的User对象进行修改之后,再次通过缓存获取User对象,此时获得的对象就是修改之后的对象。

那么可以看出缓存方法返回的对象就是保存在缓存内部的对象,而不是一个缓存对象的副本,这与博主之前所认为的是不一样的,所以大家在使用缓存的时候一定要注意,不要掉进这个坑里!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106452.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • flowable使用

    flowable使用flowable新增了idm模块,主要用于管理flowable-admin、flowable-idm、flowable-modeler、flowable-rest、flowable-task等模块。flowableidm用于管理的表如下:act_id_priv、act_id_group、act_id_membership、act_id_priv_mapping、act_id_p…

    2022年5月11日
    64
  • Ubuntu9.04上看电影加载中文字幕乱码问题

    Ubuntu9.04上看电影加载中文字幕乱码问题最近在我的Ubuntu9.04上看电影总是加载中文字幕的时候出现乱码,后来发现是字符编码的问题,今天休假在家就写了一个小的字符转码的程序,目前来说满足我自己的需求了,代码如下:importsys,i

    2022年8月1日
    7
  • Python量化交易学习笔记(50)——程序化交易1

    Python量化交易学习笔记(50)——程序化交易1easytrader安装pipinstalleasytrader下载安装e海通财PC独立交易版

    2022年10月8日
    3
  • 设计模式-工厂模式

    设计模式-工厂模式

    2021年5月25日
    123
  • 玩转软路由 篇四:软路由中OpenWRT作为旁路由的安装设置教程

    玩转软路由 篇四:软路由中OpenWRT作为旁路由的安装设置教程开篇说一些仁者见仁智者见智的话,先声明,这只是代表我自己近期浅陋的看法。看到很多人玩路由器,刷各种固件,什么爱快、高格、老毛子、OpenWRT什么的,自己也折腾过,也在恩山论坛里下载各路大神的固件使用。作为一个小白,就自然而然想到,这么多固件,哪个最好?当然对于这个问题,每个人的回答都不一样,毕竟适合自己的才重要。经过我自己不断在网上寻找答案,最后形成了一个成熟的看法,那就是真正的好不好,关键点在驱动,驱动做得会使得路由系统如虎添翼。但是,很多芯片厂家在卖芯片的时候是需要承诺不可进行二次开发的,所以路由器大

    2022年6月11日
    92
  • 微信小程序实现上传图片功能[通俗易懂]

    微信小程序实现上传图片功能[通俗易懂]效果图WXML<viewclass=”img-wrap”><viewclass=”txt”>上传截图</view><viewclass=”imglist”><viewclass=”item”wx:for=”{{imgs}}”wx:key=”item”><imagesrc=”{{item}}”alt=””></image><viewclass=’d

    2022年6月22日
    167

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号