Package org.springframework.cache.annotation

# Interface CachingConfigurer

All Known Implementing Classes:
  `CachingConfigurerSupport`

public interface CachingConfigurer
Interface to be implemented by @`Configuration` classes annotated with @`EnableCaching` that wish or need to specify explicitly how caches are resolved and how keys are generated for annotation-driven cache management.

See @`EnableCaching` for general examples and context; see `cacheManager()`, `cacheResolver()`, `keyGenerator()`, and `errorHandler()` for detailed instructions.

NOTE: A `CachingConfigurer` will get initialized early. Do not inject common dependencies into autowired fields directly; instead, consider declaring a lazy `ObjectProvider` for those.

Since:
  3.1
Author:
  Chris Beams, Stephane Nicoll
See Also:
  - `EnableCaching`

## Method Summary

Modifier and Type
Method
Description
`default CacheManager`
`cacheManager()`
Return the cache manager bean to use for annotation-driven cache management.
`default CacheResolver`
`cacheResolver()`
Return the `CacheResolver` bean to use to resolve regular caches for annotation-driven cache management.
`default CacheErrorHandler`
`errorHandler()`
Return the `CacheErrorHandler` to use to handle cache-related errors.
`default KeyGenerator`
`keyGenerator()`
Return the key generator bean to use for annotation-driven cache management.

## Method Details

### cacheManager

@Nullable default CacheManager cacheManager()
Return the cache manager bean to use for annotation-driven cache management. A default `CacheResolver` will be initialized behind the scenes with this cache manager. For more fine-grained management of the cache resolution, consider setting the `CacheResolver` directly.

Implementations must explicitly declare `@Bean` so that the cache manager participates in the lifecycle of the context, for example,

     @Configuration
     @EnableCaching
     class AppConfig implements CachingConfigurer {
         @Bean // important!
         @Override
         CacheManager cacheManager() {
             // configure and return CacheManager instance
         }
         // ...
     }

See @`EnableCaching` for more complete examples.

### cacheResolver

@Nullable default CacheResolver cacheResolver()
Return the `CacheResolver` bean to use to resolve regular caches for annotation-driven cache management. This is an alternative and more powerful option of specifying the `CacheManager` to use.

If both a `cacheManager()` and `cacheResolver()` are set, the cache manager is ignored.

Implementations must explicitly declare `@Bean` so that the cache resolver participates in the lifecycle of the context, for example,

     @Configuration
     @EnableCaching
     class AppConfig implements CachingConfigurer {
         @Bean // important!
         @Override
         CacheResolver cacheResolver() {
             // configure and return CacheResolver instance
         }
         // ...
     }

See `EnableCaching` for more complete examples.

### keyGenerator

@Nullable default KeyGenerator keyGenerator()
Return the key generator bean to use for annotation-driven cache management.

By default, `SimpleKeyGenerator` is used. See @`EnableCaching` for more complete examples.

### errorHandler

@Nullable default CacheErrorHandler errorHandler()
Return the `CacheErrorHandler` to use to handle cache-related errors.

By default, `SimpleCacheErrorHandler` is used, which throws the exception back at the client. See @`EnableCaching` for more complete examples.