由于某种原因,我无法构造番石榴缓存实例并将其公开为 Spring bean。
下面是构造代码:
@Configuration
public class ProductRepositoryCache {
@Bean
public Cache<NameSearchKey,Collection<String>> nameSearchCache() {
Cache<NameSearchKey,Collection<String>> result = CacheBuilder.newBuilder()
.maximumSize(1024)
.expireAfterAccess(0, TimeUnit.HOURS)
.expireAfterWrite(6, TimeUnit.HOURS)
.build();
return (Cache<NameSearchKey,Collection<String>>) result;
}
}
然后使用它:
@Resource
Cache<NameSearchKey,Collection<String>> nameSearchCache;
但部署失败:
资源依赖注入失败;嵌套异常是 org.springframework.beans.factory.BeanNotOfRequiredTypeException:名为“nameSearchCache”的 Bean 必须是 [com.google.common.cache.Cache] 类型,但实际上是 [com.google.common.cache.CacheBuilder] 类型|#]
我相信我错过了一些简单的东西,但找不到它。所以,我的问题是 - 我做错了什么?