023 其它的缓存注解

Posted trekxu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了023 其它的缓存注解相关的知识,希望对你有一定的参考价值。

一 .概述

  在前面,我们说到了@Cacheable注解,本节我们将剩下的注解进行说明.


 

[email protected]注解

这个注解就是解决缓存的更新问题.

public @interface CachePut {

   // cache的名字
    @AliasFor("cacheNames")
    String[] value() default {};

    @AliasFor("value")
    String[] cacheNames() default {};
    
    String key() default "";
  
    String keyGenerator() default "";
   
    String cacheManager() default "";
  
    String cacheResolver() default "";
   
    String condition() default "";
   
    String unless() default "";
}

从注解的属性上看,基本和@Cacheable注解是一致的.

我们需要注意的就是,这个注解的作用方式.

  当方法执行完之后,会根据条件决定是否put一个key和value.当key重复的时候,就相当于缓存的更新.


 

[email protected]

public @interface CacheEvict {

    @AliasFor("cacheNames")
    String[] value() default {};

    @AliasFor("value")
    String[] cacheNames() default {};

    String key() default "";
 
    String keyGenerator() default "";
  
    String cacheManager() default "";
   
    String cacheResolver() default "";
  
    String condition() default "";

    boolean allEntries() default false;
   
    boolean beforeInvocation() default false;

}

上面的注解,决定上面时候进行缓存的清空.上面的属性都比较的简单,只有最后一个属性是需要我们注意的.

beforeInvocation 这个属性时比较关键的,决定清楚缓存是在方法发生之前还是之后.
关键的一点就是方法是否会出现异常,此时我们如果提早清空缓存就会出现问题.

以上是关于023 其它的缓存注解的主要内容,如果未能解决你的问题,请参考以下文章

L1-023. 输出GPLT

Linux脚本练习之script023-提示用户输入 `yes` 或 `no`,并判断用户输入的是`yes` 还是 `no`,或是其它信息。

学习笔记TF023:下载缓存属性字典惰性属性覆盖数据流图资源

L1-023. 输出GPLT

L1-023 输出GPLT (20 分)

L1-023 输出GPLT