SpringCache是作用在方法上的。
当我们在调用一个缓存方法时,会把方法参数和返回结果作为一个键值对存放在缓存中,当下次利用同样的参数调用该方法时将不再执行该方法,而是从缓存中获取结果进行返回。
@Cacheable可以标记在一个方法上,也可以标记在一个类上。当标记在一个方法上时表示该方法是支持缓存的,当标记在一个类上时则表示该类所有的方法都是支持缓存的。
@CachePut标注的方法在执行前不会去检查缓存中是否存在之前执行过的结果,而是每次都会执行该方法,并将执行结果以键值对的形式存入指定的缓存中
@CacheEvict是用来标注在需要清除缓存元素的方法或类上的。当标记在一个类上时表示其中所有的方法的执行都会触发缓存的清除操作
需要注意的是当一个支持缓存的方法在对象内部被调用时是不会触发缓存功能的。