零、学习目标
- 了解Spring Boot支持的缓存组件
- 掌握基于注解的Redis缓存实现
- 掌握基于API的Redis缓存实现
一、Spring Boot支持的缓存组件
- Spring Boot内部嵌入了支持的一系列缓存管理组件,并按照顺序查找加载有效的缓存组件进行缓存管理,如果没有任何缓存组件,会默认使用最后一个Simple默认缓存管理组件进行管理。在实际开发中,通常会使用专业的第三方缓存插件进行缓存管理。
- 如果开启了缓存,Spring Boot会按照以下顺序去查找缓存组件:
- Generic
- JCache (JSR-107) (EhCache 3、Hazelcast、Infinispan等)
- EhCache 2.x
- Hazelcast
- Infinispan
- Couchbase
- Redis
- Caffeine
- Simple(默认)
二、基于注解的Redis缓存实现
(一)安装与启动Redis
(二)创建Spring Boot项目 - RedisCacheDemo01
- 设置组标识、项目标识、包名

- 添加Spring Web、Spring Data JPA、MySQL Driver、Spring Data Redis依赖

- 设置项目名及保存位置


- 查看pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>net.hw.lesson18</groupId>
<artifactId>rediscachedemo01</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>RedisCacheDemo01</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
(三)创建评论实体类 - Comment
- 要实现缓存,实体类必须要实现序列化接口Serializable

package net.hw.lesson18.bean;
import javax.persistence.*;
import java.io.Serializable;
/**
* 功能:评论实体类
* 作者:华卫
* 日期:2021年03月05日
*/
@Entity(name = "t_comment")
public class Comment implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
@Column(name = "content")
private String content;
@Column(name = "author")
private String author;
@Column(name = "a_id")
private Integer aId;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getContent() {
return content;
}