当前位置: 首页 > 知识库问答 >
问题:

在Spring Boot应用程序中找不到builder的名为xxx的缓存

杜良骏
2023-03-14

我有一个Spring boot应用程序,我想在它的存储库方法上使用Spring bot cache。我在Spring boot应用程序中指定了@enablecaching annotaion,当我试图在我的存储库方法上使用@cacheable annotation时,它会抛出如下错误

java.lang.IllegalArgumentException:找不到Builder的名为“cache”的缓存[public abstract java.util.optional myRepoMethod(java.lang.String,java.lang.String)]caches=[cache]key='keyGenerator=''cacheManager=''cacheSolver='condition='unless='sync='false'在org.springframework.cache.interceptor.abstractcacheSolver.resolveChaches(abstractCacheSolver.java:84)~[spring-context-5.0.6.release.jar:5.0.6.release]在AcheaSpectSupport.java:224)~[spring-context-5.0.6.release.jar:5.0.6.release]在org.springframework.cache.interceptor.cacheaSpectSupport.java:669)~[spring-context-5.0.6.release.jar:5.0.6.release]在org.springframework.cache.interceptor.getoperationcontext.cacheaSpectSupport.java:237)~[spring-context-5.0.6.release.jar:5.0.6.release]在org.springframework.cache.interceptor.getoperationcontext在CacheAspectSupport$CacheOperationContexts。(CacheAspectSupport.java:570)~[spring-context-5.0.6.release.jar:5.0.6.release.jar:5.0.6.release]在org.springframework.cache.interceptor.cacheaspectsupport.execute(cacheaspectsupport.java:317)~[spring-context-5.0.6.release]在org.springframework.cache.interceptor.cacheinterceptor.invoke(cacheinterceptor.java:61)~[spring-context-5.0.6.release]在java:185)~[spring-aop-5.0.6.release.jar:5.0.6.release]在org.springframework.aop.framework.jdkdynamicaopproxy.java:212)~[spring-aop-5.0.6.release.jar:5.0.6.release]在com.sun.proxy.$proxy140.findByUserIdandProduct(未知源)~[?:?]

我不知道我错过了什么地方!!

我的存储库方法看起来像是,

@Cacheable("cache")
Optional<ModelClass> findByUserIdAndProduct(String userId, String product);

共有1个答案

元昊苍
2023-03-14

因为你不加

@Bean
public CacheManager cacheManager() {
    SimpleCacheManager cacheManager = new SimpleCacheManager();
    List<CaffeineCache> caffeineCaches = new ArrayList<>();
    for (CacheConstant cacheType : CacheConstant.values()) {
        caffeineCaches.add(new CaffeineCache(cacheType.toString(),
                Caffeine.newBuilder()
                        .expireAfterWrite(cacheType.getExpires(), TimeUnit.SECONDS)
                        .maximumSize(cacheType.getMaximumSize())
                        .build()));
    }
    cacheManager.setCaches(caffeineCaches);
    return cacheManager;
}
 类似资料:
  • 我正在写一个Spring MVC,并坚持以下错误: 18:34:44999警告[org.springframework.web.context.support.XmlWebApplicationContext](MSC服务线程1-1)在上下文初始化过程中遇到异常-取消刷新尝试:org。springframework。豆。工厂BeanCreationException:创建名为“org”的bean时

  • 我得到一个错误,而使用java配置为ehache与Spring引导和Spring缓存启动无法找到名为bpConfigs的缓存为Builder[公共java.util.列表com.xxx.bp.repository.BpConfigRepository.getEligibleConfig()]缓存=[bpConfigs]|key="|keyGenerator="|cacheManager="|cac

  • 我正在按照本指南将MySql添加到一个已经存在的SpringBoot项目中,该项目的依赖关系管理是在Graddle上。就在我添加教程中使用的这三个类时,如下所示 main/java/net/code/model/users.java 我的类使用@SpringBoot main/java/net/code/app.java 但每当我运行该应用程序时,我总是收到下面的消息 我搜索了一些相关问题,比如S

  • 当我调用服务时,它会给出以下错误:- 我已经基于相同的设计模式构建了REST API,它对我来说工作得很好。我没有得到的东西,为什么它说“没有财产日期找到类型现金流!”?实体中没有日期属性。我尝试删除数据库并重新启动,但没有成功。我错过了什么?

  • 问题内容: 告诉我,我无法上传到AppEngine appcfg: 该应用程序不存在。 我只是AppEngine的开发人员,因此在进行测试时,我创建了一个新的AppEngine,我是所有者,但在新创建的AppEngine上仍然收到相同的消息。 问题答案: 我发现的解决方法是添加参数–: 当您从同一台计算机上的不同Google帐户上传AppEngine应用程序时,可能会发生这种情况。

  • 问题内容: 我曾经运行过Flask应用。如果将变量更改为,则Gunicorn给出错误。为什么会出现此错误,我该如何解决? myproject.py: wsgi.py: 问题答案: Gunicorn(和大多数WSGI服务器)默认在你指向的模块中查找可调用的名称。添加别名或将使再次发现可调用对象。 但是,wsgi.py不需要文件或别名,Gunicorn可以直接指向实际模块并可以调用。 Gunicorn