Код: Выделить всё
import com.github.benmanes.caffeine.cache.Caffeine;
import org.springframework.cache.CacheManager;
import org.springframework.cache.caffeine.CaffeineCacheManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.ArrayList;
import java.util.List;
@Configuration
public class CacheConfig {
@Bean
public Caffeine caffeineConfig() {
return Caffeine.newBuilder()
.maximumSize(10000)
.recordStats()
.removalListener((key, value, removalCause) -> {
// TODO: log
});
}
@Bean
public CacheManager cacheManager(Caffeine caffeine) {
CaffeineCacheManager caffeineCacheManager = new CaffeineCacheManager();
caffeineCacheManager.setCaffeine(caffeine);
List list = new ArrayList();
list.add("AsyncTest.getStr");
list.add("AsyncTest.getStr2");
list.add("AsyncTest.getStr3");
list.add("AsyncTest.getStr4");
list.add("AsyncTest.getStr5");
caffeineCacheManager.setCacheNames(list);
return caffeineCacheManager;
}
}
Код: Выделить всё
@Cacheable("AsyncTest.getStr")
public String getStr(int i) {
return "abc";
}
Код: Выделить всё
for (int i = 0; i < 1000; i++) {
asyncTest.getStr(i);
}
Код: Выделить всё
"myapp.cache.size": 250.0,
"myapp.cache.size.tags": "{name=AsyncTest.getStr, cache=AsyncTest.getStr, cacheManager=cacheManager}",
Подробнее здесь: https://stackoverflow.com/questions/743 ... ith-microm