提问人:T.J 提问时间:10/20/2023 最后编辑:Ben ManesT.J 更新时间:10/20/2023 访问量:25
Spring @Cacheable 注释不适用于咖啡因缓存
Spring @Cacheable annotation not working with caffeine cache
问:
我正在尝试在我的一个缓存服务类上@Cacheable注释。
缓存管理器类
@Configuration
@EnableCaching
public class CaffeineCacheManager extends CachingConfigurerSupport{
@Bean
public CacheManager cacheManager(){
CaffeineCacheManager cacheManager = new CaffeinieCacheManager("appConfigCache","sysConfigCache");
cacheManager.setCaffeine(
Caffeine.newBuilder()
.initialCapacity(300)
.maximumSize(1000)
.recordStats()
);
return cacheManager;
}
}
我有两个缓存服务类
@Service
@CacheConfig(cacheName={"appConfigCache"})
public class AppConfigurationCacheService{
@Autowired
private AppConfigurationDao appConfigurationDao;
@Cacheable(key="#appConfigKey")
public AppConfiguration getAppConfig(String appConfigKey){
AppConfiguration appConfig = appConfigurationDao.getAppConfigurationByKey(appConfigKey);
return appConfig;
}
}
@Service
@CacheConfig(cacheName={"sysConfigCache"})
public class SysConfigurationCacheService{
@Autowired
private SysConfigurationDao sysConfigurationDao;
@Cacheable(key="#configKey")
public SysConfiguration getSysConfig(String configKey){
SysConfiguration sysConfig = sysConfigurationDao.getSysConfigurationByKey(configKey);
return sysConfig;
}
}
当我从以下类执行时,它将始终使用类从数据库中检索它loadApplicationConfig
AppConfigurationDao
@Service
public class LoadApplicationConfig{
@Autowired
private AppConfigurationCacheService appCacheService;
public void loadApplicationConfig(String configName){
//This method does not retrieve object from cache but from the database
AppConfiguration appConfig = appCacheService.getAppConfig(configName);
}
}
@Cacheable
在课堂上工作。它将从缓存中检索对象。此外,如果我放置不同的 SpEL,它会抛出异常。但是,它不会抛出任何异常。我已经看了好几天了,我不明白为什么咖啡因缓存在课堂上不起作用。我迫切需要对这个问题有一些见解。
先谢谢你SysConfigurationCacheService
SysConfigurationCacheService
key"#configKey"
AppConfigurationCacheService
AppConfigurationCacheService
答: 暂无答案
评论