首先,我们要注意,只有使用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,三个步骤: