是否可以配置或扩展ehCache以满足以下要求?
其中第一个是相当明显的,但我没有看到满足第二个条件的方法。
答案 0 :(得分:1)
并非没有覆盖Cache.searchInStoreWith/WithoutStats方法。事实上,它实现的方式是首先从底层Store中逐出元素,然后,如果它被配置,则调用CacheListener,即使那时只传递密钥,而不是值。
当然,可以配置CacheWriter而不是驱逐过期的元素(甚至更新它们),但是如果没有覆盖Chache.get,你的调用仍然会返回null。因此,有可能破解并获得过期的元素
虽然对我来说似乎很容易改变实现,以便不会驱逐过期的元素,而是可以调用CacheLoaded。我打算异步这样做,因为我最好使用陈旧数据,而不是等待SOR响应太久或者如果SOR无法访问则根本没有数据。
似乎类似的东西是implemented以符合JSR 107,但它不区分不存在和过期的元素,如果查找失败 - 过期的元素消失。