Package org.springframework.cache.support

# Class AbstractCacheManager

java.lang.Object
org.springframework.cache.support.AbstractCacheManager

All Implemented Interfaces:
  `org.springframework.beans.factory.InitializingBean`, `CacheManager`

Direct Known Subclasses:
  `SimpleCacheManager`

public abstract class AbstractCacheManager extends Object implements CacheManager, org.springframework.beans.factory.InitializingBean
Abstract base class implementing the common `CacheManager` methods. Useful for 'static' environments where the backing caches do not change.

Since:
  3.1
Author:
  Costin Leau, Juergen Hoeller, Stephane Nicoll

## Constructor Summary

Constructors
Constructor
Description
`AbstractCacheManager()`

## Method Summary

Modifier and Type
Method
Description
`void`
`afterPropertiesSet()`
`protected Cache`
`decorateCache(Cache cache)`
Decorate the given Cache object if necessary.
`Cache`
`getCache(String name)`
Get the cache associated with the given name.
`Collection<String>`
`getCacheNames()`
Get a collection of the cache names known by this manager.
`protected Cache`
`getMissingCache(String name)`
Return a missing cache with the specified `name`, or `null` if such a cache does not exist or could not be created on demand.
`void`
`initializeCaches()`
Initialize the static configuration of caches.
`protected abstract Collection<? extends Cache>`
`loadCaches()`
Load the initial caches for this cache manager.
`protected final Cache`
`lookupCache(String name)`
Check for a registered cache of the given name.

### Methods inherited from class java.lang.Object

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

## Constructor Details

### AbstractCacheManager

public AbstractCacheManager()

## Method Details

### afterPropertiesSet

public void afterPropertiesSet()

Specified by:
  `afterPropertiesSet` in interface `org.springframework.beans.factory.InitializingBean`

### initializeCaches

public void initializeCaches()
Initialize the static configuration of caches.

Triggered on startup through `afterPropertiesSet()`; can also be called to re-initialize at runtime.

Since:
  4.2.2
See Also:
  - `loadCaches()`

### loadCaches

protected abstract Collection<? extends Cache> loadCaches()
Load the initial caches for this cache manager.

Called by `afterPropertiesSet()` on startup. The returned collection may be empty but must not be `null`.

### getCache

@Nullable public Cache getCache(String name)
Description copied from interface: `CacheManager`
Get the cache associated with the given name.

Note that the cache may be lazily created at runtime if the native provider supports it.

Specified by:
  `getCache` in interface `CacheManager`
Parameters:
  `name` - the cache identifier (must not be `null`)
Returns:
  the associated cache, or `null` if such a cache does not exist or could be not created

### getCacheNames

public Collection<String> getCacheNames()
Description copied from interface: `CacheManager`
Get a collection of the cache names known by this manager.

Specified by:
  `getCacheNames` in interface `CacheManager`
Returns:
  the names of all caches known by the cache manager

### lookupCache

@Nullable protected final Cache lookupCache(String name)
Check for a registered cache of the given name. In contrast to `getCache(String)`, this method does not trigger the lazy creation of missing caches via `getMissingCache(String)`.

Parameters:
  `name` - the cache identifier (must not be `null`)
Returns:
  the associated Cache instance, or `null` if none found
Since:
  4.1
See Also:
  - `getCache(String)`
  - `getMissingCache(String)`

### decorateCache

protected Cache decorateCache(Cache cache)
Decorate the given Cache object if necessary.

Parameters:
  `cache` - the Cache object to be added to this CacheManager
Returns:
  the decorated Cache object to be used instead, or simply the passed-in Cache object by default

### getMissingCache

@Nullable protected Cache getMissingCache(String name)
Return a missing cache with the specified `name`, or `null` if such a cache does not exist or could not be created on demand.

Caches may be lazily created at runtime if the native provider supports it. If a lookup by name does not yield any result, an `AbstractCacheManager` subclass gets a chance to register such a cache at runtime. The returned cache will be automatically added to this cache manager.

Parameters:
  `name` - the name of the cache to retrieve
Returns:
  the missing cache, or `null` if no such cache exists or could be created on demand
Since:
  4.1
See Also:
  - `getCache(String)`