如何在没有Guava CacheBuilder的情况下为简单@Cacheable设置TTL

时间:2019-07-17 03:36:11

标签: java spring

我想对Spring Boot 1.5使用@Cacheable注释,而无需任何外部缓存提供程序。如何为simple提供者案例设置TTL?

根据this question和其他在线资源,我可以使用Guava的CacheBuilder通过提供CacheConfiguration来设置到期时间。

但是,似乎Guava Cache是​​deprecated by Spring。因此,如果没有番石榴,如何为简单的Spring缓存设置TTL?

1 个答案:

答案 0 :(得分:0)

您可以尝试

  

Ehcache

在pom.xml中添加依赖项

<dependency>
    <groupId>org.ehcache</groupId>
    <artifactId>ehcache</artifactId>
    <version>3.6.2</version>
</dependency>  

实现缓存

@Service
public class NumberService {

    // ...
    @Cacheable(
      value = "squareCache", 
      key = "#number", 
      condition = "#number>10")
    public BigDecimal square(Long number) {
        BigDecimal square = BigDecimal.valueOf(number)
          .multiply(BigDecimal.valueOf(number));
        log.info("square of {} is {}", number, square);
        return square;
    }
}

more details for ref.