Springboot-集成Spring Cache

首先,我们要注意,只有使用public定义的方法或者类,可以被Spring Cache缓存。

当在一个类上使用注解时,该类中的每个公共方法的返回值,都将被缓存到指定的缓存项中,或者从中移除。

而缓存的本质,是键值对的集合。

在Spring Boot框架下,集成SpringCache,仅需要以下三步:

1、加入依赖包:compilegroup:'org.springframework.boot',name:'spring-boot-starter-cache',version:'2.0.0.RELEASE'

2、在程序入口,添加开启SpringCache缓存的注解:@EnableCaching

3、在需要缓存的DAO层的方法中,添加@CacheCacheable注解,并指定缓存的key

考虑下面的getUser方法,了解@Cacheable的深入使用

@Cacheable(cacheName=“cn”, key="#user.id")

public User getUser(User user,boolean checkLogout)

上述方法,Spring Cache缓存了一个key为方法参数:user+checkLogout,value为方法返回值:User,名字为:cn 的缓存。

入参中有一个boolean值用于区分用户是否已经注销。假设此时,并不想将这个boolean值作为key的一部分。那么,可以根据key属性,使用SpEL表达式,指定将User对象的id域作为cn缓存的key,value依旧是方法的返回值:User。

我们一起来举个栗子吧:

首先是配置Spring Cache,三个步骤:

1:配置依赖
Springboot-集成Spring Cache_第1张图片
2:开启缓存


Springboot-集成Spring Cache_第2张图片
3:创建缓存,缓存的名为id,key是id,value是Country


接下来,我们在页面,开始访问数据库,看看缓存的效果,可以通过下方的执行时间,来区分每一次的查询。

Springboot-集成Spring Cache_第3张图片
第一次访问,执行对应的查询语句,命中数据库。这时候将建立缓存。


Springboot-集成Spring Cache_第4张图片
第二次访问,不再命中数据库,而是从缓存中取值。


Springboot-集成Spring Cache_第5张图片
第三次查询,依然是从缓存中取值。没有再次查询数据库。

你可能感兴趣的:(Springboot-集成Spring Cache)