SpringBoot缓存篇01——@Cacheable属性介绍和简单使用

在开始之前先说明我的笔记是通过学习 尚硅谷 的课程总结的,感谢尚硅谷的大师。

第一步:开启基于注解的缓存

开启方法:给SpringBoot的主程序类加上 @EnableCaching 注解即可

SpringBoot缓存篇01——@Cacheable属性介绍和简单使用_第1张图片

第二步:使用@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 ="自定义的缓存组件名字") 

案例:
SpringBoot缓存篇01——@Cacheable属性介绍和简单使用_第2张图片
这样就算是完成了最基本的缓存,下次再发送这个请求时将不会再次访问数据库,而是直接获取缓存组件中的数据。

用法二: 因为缓存是使用key-value的形式缓存,所以我们可以自定义key,用法一中没有指定key也能运行是因为key有默认值(默认值为方法第一个参数)。那么一起看看自定义key怎么搞:

@Cacheable(cacheNames ="自定义的缓存组件名字",key ="指定数据缓存的键值,如果不指定则默认使用方法参数作为缓存键值") 

更神奇的是我们可以通过特定的写法获取到被注解方法的各种信息来作为key值,具体如下:
SpringBoot缓存篇01——@Cacheable属性介绍和简单使用_第3张图片
案例:
SpringBoot缓存篇01——@Cacheable属性介绍和简单使用_第4张图片
别的留着琢磨吧,不举例了。

用法三: 条件缓存,满足条件才缓存,不满足则不缓存

在这里插入代码片

案例:
SpringBoot缓存篇01——@Cacheable属性介绍和简单使用_第5张图片
别的就不一一举例了。

你可能感兴趣的:(SpringBoot,缓存,java)