<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
<version>2.9.2</version>
</dependency>
groovy
dependencies {
implementation 'com.github.ben-manes.caffeine:caffeine:2.9.2'
}
Cache<String, Object> cache = Caffeine.newBuilder()
.build();
CacheLoader<String, Object> cacheLoader = new CacheLoader<String, Object>() {
@Override
public Object load(String key) {
return fetchDataFromDatabase(key);
}
};
Cache<String, Object> cache = Caffeine.newBuilder()
.maximumSize(1000)
.expireAfterWrite(10, TimeUnit.MINUTES)
.build(cacheLoader);
import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.CacheLoader;
import com.github.benmanes.caffeine.cache.Caffeine;
import java.util.concurrent.TimeUnit;
public class CaffeineCacheExample {
public static void main(String[] args) {
CacheLoader<String, Object> cacheLoader = new CacheLoader<String, Object>() {
@Override
public Object load(String key) {
return fetchDataFromDatabase(key);
}
};
Cache<String, Object> cache = Caffeine.newBuilder()
.maximumSize(1000)
.expireAfterWrite(10, TimeUnit.MINUTES)
.build(cacheLoader);
String key = "exampleKey";
Object value = cache.get(key, k -> fetchDataFromDatabase(k));
System.out.println(value);
}
private static Object fetchDataFromDatabase(String key) {
return "Data for key: " + key;
}
}