• SpringBoot缓存使用步骤


    1.导入依赖

    <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-cache</artifactId>
    </dependency>

    2.在主启动类上加上开启缓存注解  @EnableCaching

    3.将方法的结果进行缓存,需要在方法上加上 @Cacheable 注解

    注意:

    @Cacheable先查询缓存里是否有结果,后调用方法

    @CachePut先调用方法,后将方法的返回值写入缓存(更新操作时注意key一致)

    @Cacheable/@CachePut/@CacheEvict主要参数

    value 缓存的名称,必须至少指定一个,也可用cacheName @Cacheable(value="")或@Cacheable(value={"",""}
    key 缓存的key,可以为空,如果指定要按照SpEL表达式编写,如不指定,则缺省按照方法的所有参数进行组合 @Cacheable(value="",key="#xx")
    condition

    缓存的条件,可以为空,使用SpEL编写,返回true或者false,只有为true才进行缓存/清除缓存,在调用方法之前之后都能判断

    @Cacheable(value="",condition="#xx判断")

    allEntries

    (@CacheEvict)

    是否清空所有缓存内容,缺省为false,如果指定为true,, 则方法调用后将立即清空所有缓存

    @Cacheable(value="",allEntries=true)

    beforelnvocation

    (@CacheEvict)

    是否在方法执行前就清空,缺省为false,如果指定为true,则在方法还没有执行的时候就清空缓存,缺省情况下,如果方法执行抛出异常,则不会清空缓存

    @Cacheable(value="",beforelnvocation=true)

    unless

    (@CachePut)

    (@Cacheable)

    用于否决缓存的,不像condition, 该表达式只在方法执行之后判断,此时可以拿到返回值result进行判断。条件为true不会缓存,fasle才缓存

    @Cacheable(value="",unless="")

    keyGenerator

    :key的生成器,可以指定key的生成器组件id,和key二者选其一使用

     

    SpEL表达式

    名字 位置 描述 示例
    methodName root object 当前被调用的方法名 #root.methodName
    method root object 当前被调用的方法 #root.method.name
    target root object 当前被调用的目标对象 #root.target
    targetClass root object 当前被调用的目标对象类 #root.targetClass
    args root object 当前被调用的方法的参数列表 #root.args[0]
    caches root object 当前方法调用使用的缓存列表(如@Cacheable(value={"cache1",#root.caches[0].name"cache2"}),则有 两个cache #root.caches[0].name
    argument name evaluation context 方法参 数的名字.可以直接#参数名,也可以使用#p0或#a0 的#iban 、#a0 、#p0形式,0代表参数的索引; #iban 、#a0 、#p0
    result evaluation context evaluation context方法执行 后的返回值(仅当方法执行之后的判断有效,如unless','cache put'的表达式'cache evict' 的表达式 #result
  • 相关阅读:
    使用repeater tableb绑定数据库
    运用js脚本实现table自动添加、删除行
    asp.net ListBox单选、全选、清除等功能
    .net 使用webservice 技术的测试案例
    使用.Net三层架构实现Gridview增、删、改功能
    使用用户控件AspNetPager+Gridview实现分页功能
    silverlight+wcf+linq to sql访问数据
    javascript实现乘法表(本人是菜鸟)
    oracle创建主键自增字段
    C#作Windows服务获取运行目录的方法
  • 原文地址:https://www.cnblogs.com/ws-sharecode/p/13417009.html
Copyright © 2020-2023  润新知