org.springframework.cache.concurrent

## 类 ConcurrentMapCacheManager

- java.lang.Object
- - org.springframework.cache.concurrent.ConcurrentMapCacheManager

- 所有已实现的接口:
    org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanClassLoaderAware, CacheManager

      public class ConcurrentMapCacheManager
      extends Object
      implements CacheManager, org.springframework.beans.factory.BeanClassLoaderAware

  `CacheManager` implementation that lazily builds `ConcurrentMapCache` instances for each `getCache(java.lang.String)` request. Also supports a 'static' mode where the set of cache names is pre-defined through `setCacheNames(java.util.Collection<java.lang.String>)`, with no dynamic creation of further cache regions at runtime.

  Note: This is by no means a sophisticated CacheManager; it comes with no cache configuration options. However, it may be useful for testing or simple caching scenarios. For advanced local caching needs, consider `org.springframework.cache.jcache.JCacheCacheManager`, `org.springframework.cache.ehcache.EhCacheCacheManager`, `org.springframework.cache.caffeine.CaffeineCacheManager`.

  从以下版本开始:
    3.1
  作者:
    Juergen Hoeller
  另请参阅:
    `ConcurrentMapCache`

- - ### 构造器概要

    构造器
    构造器和说明
    `ConcurrentMapCacheManager()` Construct a dynamic ConcurrentMapCacheManager, lazily creating cache instances as they are being requested.
    `ConcurrentMapCacheManager(String... cacheNames)` Construct a static ConcurrentMapCacheManager, managing caches for the specified cache names only.

  - ### 方法概要

    所有方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `protected Cache` | `createConcurrentMapCache(String name)` Create a new ConcurrentMapCache instance for the specified cache name.
    `Cache` | `getCache(String name)` Return the cache associated with the given name.
    `Collection<String>` | `getCacheNames()` Return a collection of the cache names known by this manager.
    `boolean` | `isAllowNullValues()` Return whether this cache manager accepts and converts `null` values for all of its caches.
    `boolean` | `isStoreByValue()` Return whether this cache manager stores a copy of each entry or a reference for all its caches.
    `void` | `setAllowNullValues(boolean allowNullValues)` Specify whether to accept and convert `null` values for all caches in this cache manager.
    `void` | `setBeanClassLoader(ClassLoader classLoader)`
    `void` | `setCacheNames(Collection<String> cacheNames)` Specify the set of cache names for this CacheManager's 'static' mode.
    `void` | `setStoreByValue(boolean storeByValue)` Specify whether this cache manager stores a copy of each entry (`true` or the reference (`false` for all of its caches.

    - ### 从类继承的方法 java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 构造器详细资料

    - #### ConcurrentMapCacheManager

          public ConcurrentMapCacheManager()

      Construct a dynamic ConcurrentMapCacheManager, lazily creating cache instances as they are being requested.

    - #### ConcurrentMapCacheManager

          public ConcurrentMapCacheManager(String... cacheNames)

      Construct a static ConcurrentMapCacheManager, managing caches for the specified cache names only.

  - ### 方法详细资料

    - #### setCacheNames

          public void setCacheNames(@Nullable
                                    Collection<String> cacheNames)

      Specify the set of cache names for this CacheManager's 'static' mode.

      The number of caches and their names will be fixed after a call to this method, with no creation of further cache regions at runtime.

      Calling this with a `null` collection argument resets the mode to 'dynamic', allowing for further creation of caches again.

    - #### setAllowNullValues

          public void setAllowNullValues(boolean allowNullValues)

      Specify whether to accept and convert `null` values for all caches in this cache manager.

      Default is "true", despite ConcurrentHashMap itself not supporting `null` values. An internal holder object will be used to store user-level `null`s.

      Note: A change of the null-value setting will reset all existing caches, if any, to reconfigure them with the new null-value requirement.

    - #### isAllowNullValues

          public boolean isAllowNullValues()

      Return whether this cache manager accepts and converts `null` values for all of its caches.

    - #### setStoreByValue

          public void setStoreByValue(boolean storeByValue)

      Specify whether this cache manager stores a copy of each entry (`true` or the reference (`false` for all of its caches.

      Default is "false" so that the value itself is stored and no serializable contract is required on cached values.

      Note: A change of the store-by-value setting will reset all existing caches, if any, to reconfigure them with the new store-by-value requirement.

      从以下版本开始:
        4.3

    - #### isStoreByValue

          public boolean isStoreByValue()

      Return whether this cache manager stores a copy of each entry or a reference for all its caches. If store by value is enabled, any cache entry must be serializable.
      从以下版本开始:
        4.3

    - #### setBeanClassLoader

          public void setBeanClassLoader(ClassLoader classLoader)

      指定者:
        `setBeanClassLoader` 在接口中 `org.springframework.beans.factory.BeanClassLoaderAware`

    - #### getCacheNames

          public Collection<String> getCacheNames()

      从接口复制的说明: `CacheManager`
      Return a collection of the cache names known by this manager.
      指定者:
        `getCacheNames` 在接口中 `CacheManager`
      返回:
        the names of all caches known by the cache manager

    - #### getCache

          @Nullable
          public Cache getCache(String name)

      从接口复制的说明: `CacheManager`
      Return the cache associated with the given name.
      指定者:
        `getCache` 在接口中 `CacheManager`
      参数:
        `name` - the cache identifier (must not be `null`)
      返回:
        the associated cache, or `null` if none found

    - #### createConcurrentMapCache

          protected Cache createConcurrentMapCache(String name)

      Create a new ConcurrentMapCache instance for the specified cache name.
      参数:
        `name` - the name of the cache
      返回:
        the ConcurrentMapCache (or a decorator thereof)