我在使用带有 spring boot 和 spring cache starter 的 ehcache 的 java 配置时遇到错误找不到名为 'bpConfigs' 的 Builder[public java.util.List com.xxx.bp.repository.BpConfigRepository.getEligibleConfig()] 缓存=[bpConfigs] | 键='' | 密钥生成器='' | 缓存管理器='' | cacheResolver='' | 条件='' | 除非='' | 同步=“假”我的配置:@EnableCaching@Configurationpublic class CachingConfig implements CachingConfigurer {private static final int MAX_ENTRIES = 1000;private static final int LIVE_IN_SEC = 10 * 60;@Beanpublic net.sf.ehcache.CacheManager ehCacheManager() { net.sf.ehcache.config.Configuration config = new Configuration(); config.addCache(createBpConfigsCache()); return net.sf.ehcache.CacheManager.newInstance(config);}@Bean@Overridepublic CacheManager cacheManager() { return new EhCacheCacheManager(ehCacheManager());}@Bean@Overridepublic CacheResolver cacheResolver() { return new SimpleCacheResolver(cacheManager());}@Bean@Overridepublic KeyGenerator keyGenerator() { return new SimpleKeyGenerator();}@Bean@Overridepublic 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 {@Cacheablepublic List<LoyaltyEli> getbPConfig() { return jdbcTemplate.query("select XXX,YYY from TABLE", new myMapper());}}
1 回答
幕布斯7119047
TA贡献1794条经验 获得超8个赞
我刚刚删除了实现的接口 CachingConfigurer,现在可以了。
@EnableCaching
@Configuration("CachingConfig")
public class CachingConfig {
}
添加回答
举报
0/150
提交
取消