org.springframework.cache.annotation

## 接口 CachingConfigurer

- 所有已知实现类:
    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. Consider extending `CachingConfigurerSupport`, which provides a stub implementation of all interface methods.

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

  从以下版本开始:
    3.1
  作者:
    Chris Beams, Stephane Nicoll
  另请参阅:
    `EnableCaching`, `CachingConfigurerSupport`

- - ### 方法概要

    所有方法 实例方法 抽象方法
    限定符和类型 | 方法和说明
    --- | ---
    `CacheManager` | `cacheManager()` Return the cache manager bean to use for annotation-driven cache management.
    `CacheResolver` | `cacheResolver()` Return the `CacheResolver` bean to use to resolve regular caches for annotation-driven cache management.
    `CacheErrorHandler` | `errorHandler()` Return the `CacheErrorHandler` to use to handle cache-related errors.
    `KeyGenerator` | `keyGenerator()` Return the key generator bean to use for annotation-driven cache management.

- - ### 方法详细资料

    - #### cacheManager

          @Nullable
          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`, e.g.

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

      See @`EnableCaching` for more complete examples.

    - #### cacheResolver

          @Nullable
          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`, e.g.

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

      See `EnableCaching` for more complete examples.

    - #### keyGenerator

          @Nullable
          KeyGenerator keyGenerator()

      Return the key generator bean to use for annotation-driven cache management. Implementations must explicitly declare `@Bean`, e.g.

           @Configuration
           @EnableCaching
           public class AppConfig extends CachingConfigurerSupport {
               @Bean // important!
               @Override
               public KeyGenerator keyGenerator() {
                   // configure and return KeyGenerator instance
               }
               // ...
           }

      See @`EnableCaching` for more complete examples.

    - #### errorHandler

          @Nullable
          CacheErrorHandler errorHandler()

      Return the `CacheErrorHandler` to use to handle cache-related errors.

      By default,`SimpleCacheErrorHandler` is used and simply throws the exception back at the client.

      Implementations must explicitly declare `@Bean`, e.g.

           @Configuration
           @EnableCaching
           public class AppConfig extends CachingConfigurerSupport {
               @Bean // important!
               @Override
               public CacheErrorHandler errorHandler() {
                   // configure and return CacheErrorHandler instance
               }
               // ...
           }

      See @`EnableCaching` for more complete examples.