带有 ehcache 的 spring 引导缓存找不到名为 xxx 的缓存以用于 Builder

我在使用带有 spring boot 和 spring cache starter 的 ehcache 的 java 配置时遇到错误找不到名为 'bpConfigs' 的 Builder[public java.util.List com.xxx.bp.repository.BpConfigRepository.getEligibleConfig()] 缓存=[bpConfigs] | 键='' | 密钥生成器='' | 缓存管理器='' | cacheResolver='' | 条件='' | 除非='' | 同步=“假”


我的配置:


@EnableCaching

@Configuration

public class CachingConfig  implements CachingConfigurer {


private static final int MAX_ENTRIES = 1000;

private static final int LIVE_IN_SEC = 10 * 60;


@Bean

public net.sf.ehcache.CacheManager ehCacheManager() {

    net.sf.ehcache.config.Configuration config = new Configuration();


 config.addCache(createBpConfigsCache());


    return net.sf.ehcache.CacheManager.newInstance(config);

}


@Bean

@Override

public CacheManager cacheManager() {

    return new EhCacheCacheManager(ehCacheManager());

}


@Bean

@Override

public CacheResolver cacheResolver()    {

    return new SimpleCacheResolver(cacheManager());

}


@Bean

@Override

public KeyGenerator keyGenerator() {

    return new SimpleKeyGenerator();

}


@Bean

@Override

public CacheErrorHandler errorHandler() {

    return new SimpleCacheErrorHandler();

}


private CacheConfiguration createBpConfigsCache() {


    CacheConfiguration cfg = new CacheConfiguration();


    cfg.setName("bpConfigs");

    cfg.setMemoryStoreEvictionPolicy("LRU");

    cfg.setTransactionalMode("OFF");

    cfg.setEternal(false);

    cfg.setTimeToLiveSeconds(LIVE_IN_SEC);

    cfg.setMaxEntriesLocalHeap(MAX_ENTRIES);


    return cfg;

}

}

我的方法:


@Repository

@CacheConfig(cacheNames ="bpConfigs")

public class BphConfigRepository {

@Cacheable

public List<LoyaltyEli> getbPConfig() {


    return jdbcTemplate.query("select XXX,YYY from TABLE", new myMapper());

}


}


30秒到达战场
浏览 254回答 1
1回答

幕布斯7119047

我刚刚删除了实现的接口 CachingConfigurer,现在可以了。&nbsp; @EnableCaching&nbsp; @Configuration("CachingConfig")&nbsp; public class CachingConfig {&nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java