31.1.8 Caffeine

Caffeine是Java 8对Guava缓存的重写版本,取代了Guava。如果出现Caffeine,CaffeineCacheManager(由spring-boot-starter-cache Starter提供)将会自动配置。使用spring.cache.cache-names属性可以在启动时创建缓存,并可以通过以下配置中的一个进行自定义(按指示的顺序):

  1. spring.cache.caffeine.spec定义的特殊缓存

  2. com.github.benmanes.caffeine.cache.CaffeineSpec bean定义

  3. com.github.benmanes.caffeine.cache.Caffeine bean定义

例如,以下配置创建一个cache1cache2缓存,最大数量为500,存活时间为10分钟:

spring.cache.cache-names=cache1,cache2
spring.cache.caffeine.spec=maximumSize=500,expireAfterAccess=600s

除此之外,如果定义了com.github.benmanes.caffeine.cache.CacheLoader,它会自动关联到CaffeineCacheManager。由于该CacheLoader将关联被该缓存管理器管理的所有缓存,所以它必须定义为CacheLoader<Object, Object>。自动配置将忽略所有泛型类型。