|
|
@@ -3,11 +3,15 @@ package com.danielbohry.stocks.config;
|
|
|
import com.github.benmanes.caffeine.cache.Caffeine;
|
|
|
import org.springframework.cache.CacheManager;
|
|
|
import org.springframework.cache.annotation.EnableCaching;
|
|
|
-import org.springframework.cache.caffeine.CaffeineCacheManager;
|
|
|
+import org.springframework.cache.caffeine.CaffeineCache;
|
|
|
+import org.springframework.cache.support.SimpleCacheManager;
|
|
|
import org.springframework.context.annotation.Bean;
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
import static java.util.concurrent.TimeUnit.HOURS;
|
|
|
+import static java.util.concurrent.TimeUnit.MINUTES;
|
|
|
|
|
|
@Configuration
|
|
|
@EnableCaching
|
|
|
@@ -15,9 +19,15 @@ public class CacheConfig {
|
|
|
|
|
|
@Bean
|
|
|
public CacheManager cacheManager() {
|
|
|
- CaffeineCacheManager cacheManager = new CaffeineCacheManager("exchangeRates");
|
|
|
- cacheManager.setCaffeine(Caffeine.newBuilder().expireAfterWrite(6, HOURS));
|
|
|
- return cacheManager;
|
|
|
+ CaffeineCache exchangeRates = new CaffeineCache("exchangeRates",
|
|
|
+ Caffeine.newBuilder().expireAfterWrite(6, HOURS).build());
|
|
|
+
|
|
|
+ CaffeineCache stockQuotes = new CaffeineCache("stockQuotes",
|
|
|
+ Caffeine.newBuilder().expireAfterWrite(10, MINUTES).build());
|
|
|
+
|
|
|
+ SimpleCacheManager manager = new SimpleCacheManager();
|
|
|
+ manager.setCaches(List.of(exchangeRates, stockQuotes));
|
|
|
+ return manager;
|
|
|
}
|
|
|
|
|
|
}
|