- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望添加几个不同的 LoadingCache
到 Spring CacheManager
,但是我不明白如何使用 CaffeineCacheManager
实现这一点。看来只有一个加载器可以刷新内容,但是我需要为每个缓存使用单独的加载器。是否可以向 Spring 缓存管理器添加多个加载缓存?如果是这样,那么如何?
CaffeineCacheManager cacheManage = new CaffeineCacheManager();
LoadingCache<String, Optional<Edition>> loadingCache1 =
Caffeine.newBuilder()
.maximumSize(150)
.refreshAfterWrite(5, TimeUnit.MINUTES)
.build(test -> this.testRepo.find(test));
LoadingCache<String, Optional<Edition>> loadingCache2 =
Caffeine.newBuilder()
.maximumSize(150)
.refreshAfterWrite(5, TimeUnit.MINUTES)
.build(test2 -> this.testRepo.find2(test2));
// How do I add to cache manager, and specify a name?
最佳答案
是的,这是可能的。由于您需要微调每个缓存,因此您可能更擅长自己定义它们。回到您的示例,下一步是:
SimpleCacheManager cacheManager = new SimpleCacheManager();
cacheManager.setCaches(Arrays.asList(
new CaffeineCache("first", loadingCache1),
new CaffeineCache("second", loadingCache2)));
然后您可以照常使用它,例如
@Cacheable("first")
public Foo load(String id) { ... }
如果您使用 Spring Boot,您可以将单个缓存公开为 beans(因此 org.springframework.cache.Cache
实现),我们将检测它们并创建一个 SimpleCacheManager
自动为您服务。
请注意,此策略允许您将缓存抽象与不同的实现一起使用。 first
可能是咖啡因缓存和 second
来自另一个提供商的缓存。
关于spring - Spring CaffeineCacheManager 中添加了多个 Caffeine LoadingCache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44507309/
Google 提供了“loading cache ”,其描述如下: A semi-persistent mapping from keys to values. Values are automati
在guava中,使用LoadingCache时会同步调用CacheLoader。但是,我的 load() 操作可能需要太长时间(~1 秒),我想采取默认操作以防它花费太长时间(>200 毫秒)并异步加
我使用 Map 容器作为 LoadingCache 中的值: @Service public class SlideCacheSpace { @Value("${value}") pr
我有一个数据结构,其中有对象,并且它们有目标。并且它们之间是多对多的关系。例如:object1 具有目标:t1、t2、t3 和object2 有目标:t2、t3。 我想编写一个 Guava Loadi
我有一个像这样的loadingcache类: LoadingCache> parents 其中 Parent 是一个具有 id、description、home 和 nickname asMap();
我完全重写了这个问题,因为原来的问题无法解决。为了简单起见,我使用斐波那契数列作为玩具示例。 trivial recursive cached computation正如预期的那样,以非常长的堆栈跟踪
我正在使用 CacheBuilder和 LoadingCache实现数据库数据的内存缓存。 假设客户端在缓存中查询后备存储中不存在的项目。我想让客户端知道没有找到指定键的数据。处理此问题的最佳方法是什
我需要在每天的特定时间刷新我的缓存,在我的例子中,是在午夜。我有办法用 Guava LoadingCache 做到这一点吗?到目前为止,我只在一天后使用下一个代码更新了缓存: private fina
我有一个像这样的加载缓存: MyCacheLoader loader=new MyCacheLoader(); MyRemovalListener listener=new MyRemovalList
我正在使用 Guava LoadingCache 来存储数据库查询的结果。但是,尽管没有设置逐出策略,但通过 getFromCache() 获取缓存会导致每次都命中 CacheLoader load(
我在我的项目中使用 Guava 的 LoadingCache 来处理线程{安全、友好}的缓存加载,它工作得非常好。但是,有一个限制。 当前定义缓存的代码如下所示: cache = CacheBuild
当我单独运行它们时,我为 Caffeine CacheLoader 实现编写的单元测试(JUnit、Mockito)全部成功,但当我一起运行它们时,其中一个测试失败了。我相信我在所有测试对象设置中都遵
我正在使用 Guava LoadingCache 向其中填充一些数据,并且我想每 1 分钟从该 LoadingCache 中删除所有条目。 public class MetricHolder {
我正在使用 Guava LoadingCache 将所有元素一次批量加载到我的急切缓存中。但是执行loadAll我提供的方法实际上并不需要 Iterable keys 参数,因为我的 DAO 也不排除
我希望添加几个不同的 LoadingCache到 Spring CacheManager ,但是我不明白如何使用 CaffeineCacheManager 实现这一点。看来只有一个加载器可以刷新内容,
我正在使用一个允许用户更改其显示名称的帐户系统。为了实现这一点,每个用户都有一个 UUID 。在我的程序中的各个点,我可能有一个 UUID 并想要其当前的显示名称,或者我可能有一个当前的显示名称并且我
我正在使用 Guava 的 Loading Cache缓存 HTTP 请求的结果。 Kotlin/KTOR 提供了一个 HTTP Client Library基于协程(即非阻塞 HTTP 请求)。 我
要在 spring boot 应用程序中本地缓存一些数据,哪种技术在读/写操作方面会更好?HashMap vs ConcurrentHashMap vs LoadingCache( Guava 库)我
我正在使用 Java7,并且正在配置 Apache Ignite(版本 2.7.5),其中服务器/客户端已启动并运行。但是,客户端无法从对象中检索 Guavas LoadingCache 变量(但是检
我正在尝试利用 Guava 库中的 LoadingCache 来缓存 LinkedList。 LoadingCache> cache; 我已经设置了一个 CacheLoader 来处理未命中,它工作正
我是一名优秀的程序员,十分优秀!