栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

工作中Spring缓存注解@Cacheable、@CacheEvict、@CachePut的使用场景

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

工作中Spring缓存注解@Cacheable、@CacheEvict、@CachePut的使用场景

在工作中,遇到了一段代码,业务上是进行登录时输入错误代码的次数的记录和清零。因为之前没用过@Cacheable、@CacheEvict、@CachePut这三个注释,所以花了点功夫学习了一下,在这里记录一下

	@Override
    //value:缓存名
    //keyCode:缓存的key
    //condition:判断执行条件
    //allEntries:是否需要清除缓存中的所有元素。默认为false,表示不需要
    //beforeInvocation:当我们指定为true时,Spring会在调用该方法之前清除缓存中的指定元素
    @CacheEvict(value = "login_count", key = "#keyCode", condition="判断条件", allEntries=true, beforeInvocation=true)
    public void cleanByKey(String keyCode) {
        log.info("清除缓存中的数据");
    }

    @Override
    //value:缓存名
    //keyCode:缓存的key
    //condition:判断执行条件
    @CachePut(value = "login_count", key = "#keyCode", condition="判断条件")
    public int updateCount(String keyCode,int count) {
        log.info("将返回的结果作为value,将键值对存入缓存");
        return count;
    }

    @Override
    //只读事务:从这一点设置的时间点开始(时间点a)到这个事务结束的过程中,其他事务所提交的数据,该事务将看不见!(查询中不会出现别人在时间点a之后提交的数据)
    @Transactional(readonly = true)
    //value:缓存名
    //keyCode:缓存的key
    //condition:判断执行条件
    @Cacheable(value = "login_count", key = "#keyCode", condition="判断条件")
    public int selectCount(String keyCode) {
        log.info("Spring会在其被调用后将其返回值缓存起来,以保证下次利用同样的参数来执行该方法时可以直接从缓存中获取结果,而不需要再次执行该方法");
        log.info("也就是说,调用这个方法以后,只会针对执行此方法之前的缓存状态进行操作");
        return 0;
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/439984.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号