Spring @Cacheable 注释不适用于咖啡因缓存

Spring @Cacheable annotation not working with caffeine cache

提问人:T.J 提问时间:10/20/2023 最后编辑:Ben ManesT.J 更新时间:10/20/2023 访问量:25

问:

我正在尝试在我的一个缓存服务类上@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;
    }
}

当我从以下类执行时,它将始终使用类从数据库中检索它loadApplicationConfigAppConfigurationDao

@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,它会抛出异常。但是,它不会抛出任何异常。我已经看了好几天了,我不明白为什么咖啡因缓存在课堂上不起作用。我迫切需要对这个问题有一些见解。

先谢谢你
SysConfigurationCacheServiceSysConfigurationCacheServicekey"#configKey"AppConfigurationCacheServiceAppConfigurationCacheService

spring-boot spring-cache 咖啡因缓存

评论


答: 暂无答案