我正在 Kotlin 和 Spring Boot 项目中工作,我正在尝试使用 Caffeine 进行缓存。我有一个具有暂停功能的服务,可以进行 http 调用。这是我的配置:
@Bean
open fun caffeineConfig(): @NonNull Caffeine<Any, Any> {
return Caffeine.newBuilder().expireAfterWrite(60, TimeUnit.SECONDS)
}
@Bean
open fun cacheManager(caffeine: Caffeine<Any, Any>): CacheManager {
val caffeineCacheManager = CaffeineCacheManager()
caffeineCacheManager.getCache("test")
caffeineCacheManager.setCaffeine(caffeine)
return caffeineCacheManager
}
Run Code Online (Sandbox Code Playgroud)
这是我想要缓存的函数:
@Cacheable(value = ["test"])
open suspend fun getString(id: String): String {
return client.getString(id)
}
Run Code Online (Sandbox Code Playgroud)
但似乎缓存不起作用,因为我可以从日志中看到每次调用服务函数时都会调用客户端。不适@Cacheable用于暂停功能?或者我还缺少其他东西吗?