赞
踩
@Cacheable:触发缓存写入。
@CacheEvict:触发缓存清除。
@CachePut:更新缓存(不会影响到方法的运行)。
@Caching:重新组合要应用于方法的多个缓存操作。
@CacheConfig:设置类级别上共享的一些常见缓存设置。
顾名思义,@Cacheable可以用来进行缓存的写入,将结果存储在缓存中,以便于在后续调用的时候可以直接返回缓存中的值,而不必再执行实际的方法。
最简单的使用方式,注解名称 = 缓存名称,使用例子如下:
- 1
- 2
@Cacheable(“books”)
public Book findBook(ISBN isbn) {…}
一个方法可以对应两个缓存名称,如下:
@Cacheable({“books”, “isbns”})
public Book findBook(ISBN isbn) {…}
@Cacheable的缓存名称是可以配置动态参数的,比如选择传入的参数,如下: (以下示例是使用SpEL声明,如果您不熟悉
SpEL,可以阅读Spring Expression Language)
@Cacheable(cacheNames=“books”, key=“#isbn”)
public Book findBook(ISBN isbn,boolean checkWarehouse,boolean includeUsed)
@Cacheable(cacheNames=“books”, key=“#isbn.rawNumber”)
public Book findBook(ISBN isbn,boolean checkWarehouse,boolean includeUsed)
@Cacheable(cacheNames=“books”, key=“T(someType).hash(#isbn)”)
public Book findBook(ISBN isbn,boolean checkWarehouse,boolean includeUsed)
@Cacheable还可以设置根据条件判断是否需要缓存
condition:取决于给定的参数是否满足条件
unless:取决于返回值是否满足条件
以下是一个简单的例子:
@Cacheable(cacheNames=“book”, condition=“#name.length() < 32”)
public Book findBook(String name)
@Cacheable(cacheNames=“book”, condition=“#name.length() < 32”, unless=“#result.hardback”)
public Book findBook(String name)
@Cacheable还可以设置:keyGenerator(指定key自动生成方法),cacheManager(指定使用的缓存管
理),cacheResolver(指****定使用缓存的解析器)等,这些参数比较适合全局设置,这里就不多做介绍了。
@CachePut:当需要更新缓存而不干扰方法的运行时 ,可以使用该注解。也就是说,始终执行该方法,并将结果放入缓
存,注解参数与@Cacheable相同。 以下是一个简单的例子:
@CachePut (cacheNames=“book”, key=“#isbn”)
public Book updateBook(ISBN isbn, BookDescriptor descriptor)
**通常强烈建议
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。