学科分类
目录
Spring Boot开发

Spring Boot默认缓存体验

在前面搭建的Web应用基础上,开启Spring Boot默认支持的缓存,体验Spring Boot默认缓存的使用效果。

(1)使用@EnableCaching注解开启基于注解的缓存支持。@EnableCaching用于开启基于注解的缓存支持,该注解通常会添加在项目启动类上,内容如文件1所示。

文件1 Chapter06Application.java

 1    import org.springframework.boot.SpringApplication;
 2    import org.springframework.boot.autoconfigure.SpringBootApplication;
 3    import org.springframework.cache.annotation.EnableCaching;
 4    @EnableCaching   // 开启Spring Boot基于注解的缓存管理支持
 5    @SpringBootApplication
 6    public class Chapter06Application {
 7        public static void main(String[] args) {
 8            SpringApplication.run(Chapter06Application.class, args);
 9        }
 10    }

(2)使用@Cacheable注解对数据操作方法进行缓存管理。将@Cacheable注解标注在Service类的查询方法上,对查询结果进行缓存,示例代码如下。

// 根据评论id查询评论信息
@Cacheable(cacheNames = "comment")
public Comment findById(int comment_id){
    Optional<Comment> optional = commentRepository.findById(comment_id);
    if(optional.isPresent()){
        return optional.get();
    }
    return null;
}

上述代码中,在CommentService类中的findById(int comment_id)方法上添加了查询缓存注解@Cacheable,该注解的作用是将查询结果Comment存放在Spring Boot默认缓存中名称为comment的名称空间(namespace)中,对应缓存唯一标识(即缓存数据对应的主键k)默认为方法参数comment_id的值。

(3)Spring Boot默认缓存测试。启动chapter06项目,项目启动成功后,通过浏览器继续访问“http://localhost:8080/get/1”查询id为1的用户评论信息。不论浏览器刷新多少次,访问同一个用户评论信息,页面的查询结果都会显示同一条数据,同时,控制台也只显示有一条SQL语句,具体如图1和图2所示。

图1 findById()方法查询结果

图2 执行findById()方法控制台显示的SQL语句

从图1和2可以看出,执行findById()方法正确查询出用户评论信息Comment,在配置了Spring Boot默认注解后,重复进行同样的查询操作,数据库只执行了一次SQL查询语句,说明项目开启的默认缓存支持已经生效。

点击此处
隐藏目录