@Cacheable(value="users", key="'cms_catalog_'+userId") //如果缓存中有数据,就用缓存中的数据,否则执行方法语句
@CachePut("users")//每次都会执行方法,并将结果存入指定的缓存中(不读取缓存中的数据,只保存)
@CacheEvict (value="redis1",key="'cms_catalog_*'")
//触发缓存的清除操作,condition表示清除操作发生的条件
allEntries是boolean类型,表示是否需要清除缓存中的所有元素。默认为false,表示不需要。当指定了allEntries为true时,Spring Cache将忽略指定的key
清除操作默认是在对应方法成功执行之后触发的,即方法如果因为抛出异常而未能成功返回时也不会触发清除操作。使用beforeInvocation可以改变触发清除操作的时间,当我们指定该属性值为true时,Spring会在调用该方法之前清除缓存中的指定元素。