# 31.1.9 Guava

如果存在Guava，`GuavaCacheManager`会自动配置。使用`spring.cache.cache-names`属性可以在启动时创建缓存，并通过以下方式之一自定义（按此顺序）：

1. `spring.cache.guava.spec`定义的特殊缓存
2. `com.google.common.cache.CacheBuilderSpec` bean定义的
3. `com.google.common.cache.CacheBuilder` bean定义的

例如，以下配置创建了一个`foo`和`bar`缓存，该缓存最大数量为500，存活时间为10分钟：

```
spring.cache.cache-names=foo,bar
spring.cache.guava.spec=maximumSize=500,expireAfterAccess=600s
```

此外，如果定义`com.google.common.cache.CacheLoader` bean，它会自动关联到`GuavaCacheManager`。由于该`CacheLoader`将关联该缓存管理器管理的所有缓存，它必须定义为`CacheLoader<Object, Object>`，自动配置会忽略所有泛型类型。
