> For the complete documentation index, see [llms.txt](https://jack80342.gitbook.io/spring-boot/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jack80342.gitbook.io/spring-boot/iv.-spring-boot-features/31.-caching/31.1-supported-cache-providers/31.1.8-caffeine.md).

# 31.1.8 Caffeine

[Caffeine](https://github.com/ben-manes/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定义

例如，以下配置创建一个`cache1`和`cache2`缓存，最大数量为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>`。自动配置将忽略所有泛型类型。
