13.2 为方法添加注解以支持缓存

如前文所述,Spring 的缓存抽象在很大程度上是围绕切面构建的。在 Spring 中启用缓存时,会创建一个切面,它触发一个或更多的 Spring 的缓存注解。表 13.1 列出了 Spring 所提供的缓存注解。

表 13.1 中的所有注解都能运用在方法或类上。当将其放在单个方法上时,注解所描述的缓存行为只会运用到这个方法上。如果注解放在类级别的话,那么缓存行为就会应用到这个类的所有方法上。

注解

描述

@Cacheable

表明 Spring 在调用方法之前,首先应该在缓存中查找方法的返回值。如果这个值能够找到,就会返回缓存的值。否则的话,这个方法就会被调用,返回值会放到缓存之中

@CachePut

表明 Spring 应该将方法的返回值放到缓存中。在方法的调用前并不会检查缓存,方法始终都会被调用

@CacheEvict

表明 Spring 应该在缓存中清除一个或多个条目

@Caching

这是一个分组的注解,能够同时应用多个其他的缓存注解