【问题标题】:Spring boot cache No cache could be resolved for BuilderSpring Boot 缓存 无法为 Builder 解析缓存
【发布时间】:2017-07-21 08:22:05
【问题描述】:

根据link的说法,spring boot中使用缓存最简单的配置就是使用CacheManager(这个类会初始化一个缓存Map):

@Configuration
@EnableCaching
public class CacheService extends CachingConfigurerSupport {
    @Bean
    public CacheManager concurrentMapCacheManager() {
        ConcurrentMapCacheManager cmcm = new ConcurrentMapCacheManager();
        return cmcm;
    }

    @Bean
    @Primary
    public CacheManager guavaCacheManager() {
        GuavaCacheManager gcm = new GuavaCacheManager();
        return gcm;
    }
}

serviceImpl.java:

 @Cacheable(cacheManager="guavaCacheManager")
 @Override
 public List<RoleVO> getDataForCreateNewOperator() {
  ...
 }

但它会抛出:

java.lang.IllegalStateException: No cache could be resolved for 'Builder[public java.util.List getDataForCreateNewOperator()] caches=[] | key='' | keyGenerator='' | cacheManager='guavaCacheManager' | cacheResolver='' | condition='' | unless='' | sync='false'' using resolver 'org.springframework.cache.interceptor.SimpleCacheResolver@38466d10'. At least one cache should be provided per cache operation.

编辑: 如果我在 cacheManager 中分配一个 cacheName,并在建议的方法中使用它,异常就消失了。但是 bean 中的所有方法都会被缓存,而我只在一个方法上分配了@Cacheable

【问题讨论】:

  • 您是否尝试过这样的事情:@Cacheable(cacheNames = "cache-name") 在您的存储库方法上?
  • @Afridi 是的,我试过了,那行得通。但不是动态的,它也应该起作用。另外,使用cacheName虽然异常没有了,但是却使得整个类都可以缓存,不仅仅是方法。

标签: caching spring-boot


【解决方案1】:

我正在使用 Ehcache,但我遇到了同样的问题,因为我有两个不同的 缓存和可缓存的名称。

Please make you use same name for cache and Cacheable.

@Cacheable("codetable")

<cache name="codetable"
        maxEntriesLocalHeap="100"
        maxEntriesLocalDisk="1000"
        eternal="false"
        timeToIdleSeconds="300"
        timeToLiveSeconds="600"
        memoryStoreEvictionPolicy="LFU"
        transactionalMode="off">
        <persistence strategy="localTempSwap" />
    </cache>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-16
    • 2016-10-13
    • 1970-01-01
    • 2020-05-22
    • 2018-12-16
    • 2020-10-28
    • 2018-09-30
    • 2020-03-16
    相关资源
    最近更新 更多