You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Akka Play测试中@NamedCache标注的缓存依赖注入该如何正确绑定?

问题根因

你当前绑定失败的核心原因是限定符注解类型不匹配:

  • 业务类中注入用的是Play框架专属的@play.cache.NamedCache("token-cache")注解
  • 测试绑定时调用qualifiedWith("token-cache")默认关联的是Guice自带的@com.google.inject.name.Named("token-cache")注解
    两者属于完全不同的注解类型,Guice无法完成匹配,因此抛出配置异常。
修复方案

绑定时明确指定限定符为NamedCache注解实例即可,修正后的绑定代码如下:

// 首先确认导入Play的NamedCache注解
import play.cache.NamedCache

private val cache: MockCaffeineCache = new CaffeineCacheApi(new NamedCaffeineCache("token-cache", new MockCaffeineCache)) 

val application: Injector = new GuiceInjectorBuilder()
    // 其他原有绑定保持不变
    .bindings(bind[AsyncCacheApi].qualifiedWith(new NamedCache("token-cache")).to(cache))
    // 其他配置保持不变

修改后Guice会将该绑定和业务类上的@NamedCache("token-cache")注解准确匹配,即可正常完成注入。


内容的提问来源于stack exchange,提问作者DenisNovac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:36:01