- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 Spring Boot 1.5 中使用 @Cacheable 注释,而不需要任何外部缓存提供程序。如何设置 simple 的 TTL提供商案例?
根据this question和其他在线资源,我可以使用 Guava 的 CacheBuilder 通过提供 CacheConfiguration 来设置过期时间。
但是,Guava Cache 似乎是 deprecated by Spring 。那么如果没有 Guava,如何为一个简单的 Spring 缓存设置 TTL?
最佳答案
你可以试试
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;
}
}
关于java - 如何在没有 Guava CacheBuilder 的情况下为 Simple @Cacheable 设置 TTL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57068176/
这个问题已经有答案了: Spark 1.5.1, Cassandra Connector 1.5.0-M2, Cassandra 2.1, Scala 2.10, NoSuchMethodError
有人可以向我解释如何正确使用 Guava CacheBuilder。 如果数据不可访问,getFromNetwork() 应该引发异常还是返回 null?我应该引发执行异常并使用 guavaCache
从我的应用程序日志中,我觉得在缓存键过期后没有立即调用removeListener。这会在下面的场景中产生问题 缓存配置: SimpleCacheManager simpleCacheManager
我正在尝试创建一个简单的缓存,可以在其中存储 map 中的一些数据元素。我需要将这些数据保留大约 16 小时左右,之后我可以让旧项目过期。我正在实例化我的 LoadingCache: cache =
嗨,我是谷歌 Guava 集合的新手,所以我需要会过期一段时间的集合。所以我编写了以下代码,但它不会在过期时间后删除数据。任何人都可以告诉我代码的问题是什么。 Cache cache = CacheB
我想弄清楚您在 Guava CacheBuilder maximumSize() 中指定的数字代表什么。 假设我的代码中有这样的东西, Cache programCache = CacheBuilde
我想用 Guava CacheBuilder ,但无法找到任何明确的示例来实现这一点。 文档说明了以下代码: LoadingCache graphs = CacheBuilder.newBuilder
请告诉我哪里遗漏了什么。 我在 DataPool 中有一个由 CacheBuilder 构建的缓存。 DataPool 是一个单例对象,各种线程都可以获取其实例并对其进行操作。现在我有一个线程生成数据
我想要:当实体因超时到期而被移除时收到通知。 我尝试过: 设置删除监听器。 问题: 删除监听器似乎无法正常工作。它仅在我将新项目放入缓存时起作用(请参见下面的代码) 问题: 如何在不放置新项目的情况下
我正在尝试使用 Stash 插件的代码片段,但编译器一直给我一个我似乎无法解决的错误。它使用 com.google.common.cache.Cache (Guava) static final R
我已经创建了一个 Guava(一个包含有用的东西的库,几乎可以在任何 Java 项目中使用,包括用于不可变集合、函数式编程、I/O 等等的库)基于 CacheBuilder 的缓存 LoadingC
我目前在我的应用程序中使用 ConcurrentHashMap,但我需要添加在超时期限后有效地使条目过期的功能 (expireAfterWrite),并在删除条目时通知删除监听器。 我看到 Cache
Guava CacheBuilder 只使用一个 JVM。我想使用 CacheBuilder 接口(interface)从 redis 加载数据,然后 redis 依次从 MySQL 加载数据。 我该
我想使用这里推荐的 CacheBuilder: Java time-based map/cache with expiring keys 但是我不明白什么时候 Guava 知道条目会过期。 Guava
我想知道目前是否有一种方法可以使用 Guava MapMaker 或将使用 CacheBuilder 来提供计算缓存是否在最大大小范围内的函数? 看起来目前的驱逐只是基于缓存中的元素数量与 .maxi
我需要获取慢速方法的结果slowResult()对于类 Something 的实例。单独缓存并没有什么帮助,因为实例几乎不会重复。幸运的是,我知道结果实际上只取决于一些容易获得的Attributes的
我有一个方法可以提取大量数据。由于数据集很大且所需的计算量很大,这可能会花费相当多的时间。执行此调用的方法将被多次使用。结果列表每次都应返回相同的结果。话虽如此,我想缓存结果,所以我只需要做一次计算。
我尝试使用 MapMaker/CacheBuilder 制作缓存,但我不明白如何正确处理空值。 ConcurrentMap graphs = new MapMaker() .concu
从昨天开始尝试上传我的应用程序的新版本(仅更改了客户端代码),出现以下异常(应用程序 ID 为“riparautonline-hrd”): Uncaught exception from servle
我不习惯处理 Java 中的软引用和弱引用,但我理解其中的原理,因为我习惯处理像 Gemfire 这样的数据网格,它在内存已满时提供溢出到硬盘功能,可能使用软引用或我猜是类似的东西。 我在 Guava
我是一名优秀的程序员,十分优秀!