org.springframework.cache.support

## 类 NoOpCache

- java.lang.Object
- - org.springframework.cache.support.NoOpCache

- 所有已实现的接口:
    Cache

      public class NoOpCache
      extends Object
      implements Cache

  A no operation `Cache` implementation suitable for disabling caching.

  Will simply accept any items into the cache not actually storing them.

  从以下版本开始:
    4.3.4
  作者:
    Costin Leau, Stephane Nicoll

- - ### 嵌套类概要

    - ### 从接口继承的嵌套类/接口 org.springframework.cache.Cache

      `Cache.ValueRetrievalException, Cache.ValueWrapper`

  - ### 构造器概要

    构造器
    构造器和说明
    `NoOpCache(String name)` Create a `NoOpCache` instance with the specified name

  - ### 方法概要

    所有方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `void` | `clear()` Remove all mappings from the cache.
    `void` | `evict(Object key)` Evict the mapping for this key from this cache if it is present.
    `Cache.ValueWrapper` | `get(Object key)` Return the value to which this cache maps the specified key.
    `<T> T` | `get(Object key, Callable<T> valueLoader)` Return the value to which this cache maps the specified key, obtaining that value from `valueLoader` if necessary.
    `<T> T` | `get(Object key, Class<T> type)` Return the value to which this cache maps the specified key, generically specifying a type that return value will be cast to.
    `String` | `getName()` Return the cache name.
    `Object` | `getNativeCache()` Return the underlying native cache provider.
    `void` | `put(Object key, Object value)` Associate the specified value with the specified key in this cache.
    `Cache.ValueWrapper` | `putIfAbsent(Object key, Object value)` Atomically associate the specified value with the specified key in this cache if it is not set already.

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

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

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

    - #### NoOpCache

          public NoOpCache(String name)

      Create a `NoOpCache` instance with the specified name
      参数:
        `name` - the name of the cache

  - ### 方法详细资料

    - #### getName

          public String getName()

      从接口复制的说明: `Cache`
      Return the cache name.
      指定者:
        `getName` 在接口中 `Cache`

    - #### getNativeCache

          public Object getNativeCache()

      从接口复制的说明: `Cache`
      Return the underlying native cache provider.
      指定者:
        `getNativeCache` 在接口中 `Cache`

    - #### get

          @Nullable
          public Cache.ValueWrapper get(Object key)

      从接口复制的说明: `Cache`
      Return the value to which this cache maps the specified key.

      Returns `null` if the cache contains no mapping for this key; otherwise, the cached value (which may be `null` itself) will be returned in a `Cache.ValueWrapper`.

      指定者:
        `get` 在接口中 `Cache`
      参数:
        `key` - the key whose associated value is to be returned
      返回:
        the value to which this cache maps the specified key, contained within a `Cache.ValueWrapper` which may also hold a cached `null` value. A straight `null` being returned means that the cache contains no mapping for this key.
      另请参阅:
        `Cache.get(Object, Class)`

    - #### get

          @Nullable
          public <T> T get(Object key,
                                      @Nullable
                                      Class<T> type)

      从接口复制的说明: `Cache`
      Return the value to which this cache maps the specified key, generically specifying a type that return value will be cast to.

      Note: This variant of `get` does not allow for differentiating between a cached `null` value and no cache entry found at all. Use the standard `Cache.get(Object)` variant for that purpose instead.

      指定者:
        `get` 在接口中 `Cache`
      参数:
        `key` - the key whose associated value is to be returned
        `type` - the required type of the returned value (may be `null` to bypass a type check; in case of a `null` value found in the cache, the specified type is irrelevant)
      返回:
        the value to which this cache maps the specified key (which may be `null` itself), or also `null` if the cache contains no mapping for this key
      另请参阅:
        `Cache.get(Object)`

    - #### get

          @Nullable
          public <T> T get(Object key,
                                      Callable<T> valueLoader)

      从接口复制的说明: `Cache`
      Return the value to which this cache maps the specified key, obtaining that value from `valueLoader` if necessary. This method provides a simple substitute for the conventional "if cached, return; otherwise create, cache and return" pattern.

      If possible, implementations should ensure that the loading operation is synchronized so that the specified `valueLoader` is only called once in case of concurrent access on the same key.

      If the `valueLoader` throws an exception, it is wrapped in a `Cache.ValueRetrievalException`

      指定者:
        `get` 在接口中 `Cache`
      参数:
        `key` - the key whose associated value is to be returned
      返回:
        the value to which this cache maps the specified key

    - #### put

          public void put(Object key,
                          @Nullable
                          Object value)

      从接口复制的说明: `Cache`
      Associate the specified value with the specified key in this cache.

      If the cache previously contained a mapping for this key, the old value is replaced by the specified value.

      指定者:
        `put` 在接口中 `Cache`
      参数:
        `key` - the key with which the specified value is to be associated
        `value` - the value to be associated with the specified key

    - #### putIfAbsent

          @Nullable
          public Cache.ValueWrapper putIfAbsent(Object key,
                                                           @Nullable
                                                           Object value)

      从接口复制的说明: `Cache`
      Atomically associate the specified value with the specified key in this cache if it is not set already.

      This is equivalent to:

           Object existingValue = cache.get(key);
           if (existingValue == null) {
               cache.put(key, value);
               return null;
           } else {
               return existingValue;
           }

      except that the action is performed atomically. While all out-of-the-box `CacheManager` implementations are able to perform the put atomically, the operation may also be implemented in two steps, e.g. with a check for presence and a subsequent put, in a non-atomic way. Check the documentation of the native cache implementation that you are using for more details.
      指定者:
        `putIfAbsent` 在接口中 `Cache`
      参数:
        `key` - the key with which the specified value is to be associated
        `value` - the value to be associated with the specified key
      返回:
        the value to which this cache maps the specified key (which may be `null` itself), or also `null` if the cache did not contain any mapping for that key prior to this call. Returning `null` is therefore an indicator that the given `value` has been associated with the key.

    - #### evict

          public void evict(Object key)

      从接口复制的说明: `Cache`
      Evict the mapping for this key from this cache if it is present.
      指定者:
        `evict` 在接口中 `Cache`
      参数:
        `key` - the key whose mapping is to be removed from the cache

    - #### clear

          public void clear()

      从接口复制的说明: `Cache`
      Remove all mappings from the cache.
      指定者:
        `clear` 在接口中 `Cache`