Spring中的缓存用法:有说错请指正
启动类加@EnableCache
注解很多,这里举例几个实用的
第一组
value和key都没什么特别的含义,随你自己取,注意key里面是包了一层的
@Cacheable(value="user",key = "'findUsers'")
第一次查询的时候,会查数据库,然后将返回结果放到user里的findUsers如图,后面再次执行该方法,就会去user里的findUsers里取,不再连接数据库
@CacheEvict(value="user",key = "'findUsers'")
执行有注解的方法时,会清空user里的findUsers,应该说清除掉findUsers
这样当继续查所有的时候,缓存user里面没有findUsers,那么会先查询数据库,然后往user里的finUsers放一份,或者说创建
此种情况,增删改都需要加@CacheEvict(value="user",key = "'findUsers'")就是说删掉user里的findUsers
--------------------------------------------------------------------------------------------------------------
第二组,如果说我要对查询的某条记录做缓存
此种情况,在增删改需要将user整个缓存删除掉
---------------------------------------------------------------------------------------------------
第三种其实就是多参
findUserByxxxAndxxx
写法比如@ Cacheable(value="user",key="'findUserByxxxAndxxx'"+'#xxx'+','+'#xxx')
样的增删改时候删除上级缓存
Spring缓存注解还有很多.