在开始之前先说明我的笔记是通过学习
尚硅谷
的课程总结的,感谢尚硅谷的大师。
第一步:开启基于注解的缓存
开启方法:给SpringBoot的主程序类加上
@EnableCaching
注解即可
第二步:使用@Cacheable注解进行缓存操作
一、@Cacheable
概述:使用缓存(方法注解:最好标注在Service层的方法上)。
这个注解有很多属性,一起看看@Cacheable底层源码,然后分析一下这些注解:
package org.springframework.cache.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.concurrent.Callable;
import org.springframework.core.annotation.AliasFor;
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface Cacheable {
@AliasFor("cacheNames")
String[] value() default {}; //指定组件名称
@AliasFor("value")
String[] cacheNames() default {};//指定组件名称
String key() default "";//指定缓存键值key
String keyGenerator() default "";//指定缓存生成器
String cacheManager() default "";//指定缓存管理器
String cacheResolver() default "";//指定缓存解析器
String condition() default "";//条件——符合条件则缓存
String unless() default "";//条件——除非,否定缓存,符合条件则不缓存
boolean sync() default false;//异步缓存
}
用法介绍:
用法一 :
@Cacheable(cacheNames ="自定义的缓存组件名字")
案例:
这样就算是完成了最基本的缓存,下次再发送这个请求时将不会再次访问数据库,而是直接获取缓存组件中的数据。
用法二:
因为缓存是使用key-value的形式缓存,所以我们可以自定义key,用法一中没有指定key也能运行是因为key有默认值(默认值为方法第一个参数)。那么一起看看自定义key怎么搞:
@Cacheable(cacheNames ="自定义的缓存组件名字",key ="指定数据缓存的键值,如果不指定则默认使用方法参数作为缓存键值")
更神奇的是我们可以通过
特定的写法
获取到
被注解方法
的各种信息来作为key值,具体如下:
案例:
别的留着琢磨吧,不举例了。
用法三:
条件缓存,满足条件才缓存,不满足则不缓存
在这里插入代码片
案例:
别的就不一一举例了。
版权声明:本文为qq_41008818原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。