org.springframework.cache

## Interface Cache

- All Known Implementing Classes:
    ConcurrentMapCache, EhCacheCache, GuavaCache, JCacheCache, TransactionAwareCacheDecorator

      public interface Cache

  Interface that defines the common cache operations. Note: Due to the generic use of caching, it is recommended that implementations allow storage of `null` values (for example to cache methods that return `null`).
  Since:
    3.1
  Author:
    Costin Leau, Juergen Hoeller

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static interface` | `Cache.ValueWrapper` A (wrapper) object representing a cache value.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `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, 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 the underlying native cache provider.
    `void` | `put(Object key, Object value)` Associate the specified value with the specified key in this cache.

- - ### Method Detail

    - #### getName

          String getName()

      Return the cache name.

    - #### getNativeCache

          Object getNativeCache()

      Return the the underlying native cache provider.

    - #### get

          Cache.ValueWrapper get(Object key)

      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`.

      Parameters:
        `key` - the key whose associated value is to be returned
      Returns:
        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.
      See Also:
        `get(Object, Class)`

    - #### get

          <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.

      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 `get(Object)` variant for that purpose instead.

      Parameters:
        `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)
      Returns:
        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
      Since:
        4.0
      See Also:
        `get(Object)`

    - #### put

          void put(Object key,
                   Object value)

      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.

      Parameters:
        `key` - the key with which the specified value is to be associated
        `value` - the value to be associated with the specified key

    - #### evict

          void evict(Object key)

      Evict the mapping for this key from this cache if it is present.
      Parameters:
        `key` - the key whose mapping is to be removed from the cache

    - #### clear

          void clear()

      Remove all mappings from the cache.