Spring Cache
从Spring 3.1开始,Spring引入了对Cache的支持。其使用方法和原理与Spring对事务管理的支持类似。Spring Cache作用于方法上,其原理是当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存放在缓存中,等到下次利用同样的参数来调用该方法时将不再执行该方法,而是直接从缓存中获取结果进行返回。所以在使用Spring Cache的时候我们要保证我们缓存的方法对于相同的方法参数要有相同的返回结果。
Spring对Cache的支持也有基于注解和基于XML配置两种方式,这里主要讨论基于注解的方式。
使用Spring Cache
使用Spring Cache需要我们做两件事
1.声明某些方法使用缓存
2. 配置Spring对Cache的支持
基于注解的支持
Spring为我们提供了几个注解来支持Spring Cache。主要有@Cacheable、@CachePut和@CacheEvict。使用@Cacheable标记的方法在执行后Spring Cache将缓存其返回结果,而使用@CacheEvict标记的方法会在方法执行前或者执行后移除Spring Cache中的某些元素。
@Cacheable
@Cacheable可以标记在一个方法上,也可以标记在一个类上。当标记在一个方法上时表示该方法是支持缓存的,当标记在一个类上时则表示该类所有的方法都是支持缓存的。对于一个支持缓存的方法,Spring会在其被调用后将其返回值缓存起来