Spring BootでCaffeineのcacheごとにexpireAfterAccessを指定する
Spring BootのcacheにCaffeineを使っている場合で、cacheごとにmaximumSizeやexpireAfterAccessを指定したいときのメモ。
プロパティのspring.cache.caffeine.spec
にはcacheごとにexpireAfterAccessなどを設定できないので、SimpleCacheManagerを使うしかなさそう。
@Bean public SimpleCacheManager cacheManager() { SimpleCacheManager cacheManager = new SimpleCacheManager(); CaffeineCache cache1 = new CaffeineCache("cache1", Caffeine.newBuilder() .maximumSize(100) .expireAfterAccess(10, TimeUnit.MINUTES) .build()); CaffeineCache cache2 = new CaffeineCache("cache2", Caffeine.newBuilder() .maximumSize(200) .expireAfterAccess(20, TimeUnit.MINUTES) .build()); cacheManager.setCaches(List.of(cache1, cache2)); return cacheManager; }