023 其它的缓存注解
Posted trekxu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了023 其它的缓存注解相关的知识,希望对你有一定的参考价值。
一 .概述
在前面,我们说到了@Cacheable注解,本节我们将剩下的注解进行说明.
这个注解就是解决缓存的更新问题.
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重复的时候,就相当于缓存的更新.
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 其它的缓存注解的主要内容,如果未能解决你的问题,请参考以下文章
Linux脚本练习之script023-提示用户输入 `yes` 或 `no`,并判断用户输入的是`yes` 还是 `no`,或是其它信息。