@Bean
public CacheManager cacheManager(@Value(CachedRestClient.CACHE_TTL) Long cacheNetworkTimeToLive,
@Value(DatabaseConfig.CACHE_TTL) Long cacheDatabaseTimeToLive,
@Value(GettingStartedGuides.CACHE_TTL) Long cacheGuideTimeToLive) {
SimpleCacheManager cacheManager = new SimpleCacheManager();
List<ConcurrentMapCache> cacheList = new ArrayList<>();
cacheList.add(createConcurrentMapCache(cacheNetworkTimeToLive, CachedRestClient.CACHE_NAME, -1));
cacheList.add(createConcurrentMapCache(cacheDatabaseTimeToLive, DatabaseConfig.CACHE_NAME, 50));
cacheList.add(createConcurrentMapCache(cacheGuideTimeToLive, GettingStartedGuides.CACHE_NAME, 100));
cacheManager.setCaches(cacheList);
return cacheManager;
}