Class CompositeCacheManager
- java.lang.Object
- org.springframework.cache.support.CompositeCacheManager
- All Implemented Interfaces:
InitializingBean
,CacheManager
public class CompositeCacheManager extends Object implements CacheManager, InitializingBean
CompositeCacheManager
implementation that iterates over a given collection of delegateCacheManager
instances.Allows
NoOpCacheManager
to be automatically added to the end of the list for handling cache declarations without a backing store. Otherwise, any customCacheManager
may play that role of the last delegate as well, lazily creating cache regions for any requested name.Note: Regular CacheManagers that this composite manager delegates to need to return
null
fromgetCache(String)
if they are unaware of the specified cache name, allowing for iteration to the next delegate in line. However, mostCacheManager
implementations fall back to lazy creation of named caches once requested; check out the specific configuration details for a 'static' mode with fixed cache names, if available.- Since:
- 3.1
- Author:
- Costin Leau, Juergen Hoeller
- See Also:
setFallbackToNoOpCache(boolean)
,ConcurrentMapCacheManager.setCacheNames(java.util.Collection<java.lang.String>)
Constructor Summary
Constructors Constructor Description CompositeCacheManager()
Construct an empty CompositeCacheManager, with delegate CacheManagers to be added via the"cacheManagers"
property.CompositeCacheManager(CacheManager... cacheManagers)
Construct a CompositeCacheManager from the given delegate CacheManagers.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
afterPropertiesSet()
Invoked by the containingBeanFactory
after it has set all bean properties and satisfiedBeanFactoryAware
,ApplicationContextAware
etc.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.void
setCacheManagers(Collection<CacheManager> cacheManagers)
Specify the CacheManagers to delegate to.void
setFallbackToNoOpCache(boolean fallbackToNoOpCache)
Indicate whether aNoOpCacheManager
should be added at the end of the delegate list.
Constructor Detail
CompositeCacheManager
public CompositeCacheManager()
Construct an empty CompositeCacheManager, with delegate CacheManagers to be added via the"cacheManagers"
property.
CompositeCacheManager
public CompositeCacheManager(CacheManager... cacheManagers)
Construct a CompositeCacheManager from the given delegate CacheManagers.- Parameters:
cacheManagers
- the CacheManagers to delegate to
Method Detail
setCacheManagers
public void setCacheManagers(Collection<CacheManager> cacheManagers)
Specify the CacheManagers to delegate to.
setFallbackToNoOpCache
public void setFallbackToNoOpCache(boolean fallbackToNoOpCache)
Indicate whether aNoOpCacheManager
should be added at the end of the delegate list. In this case, anygetCache
requests not handled by the configured CacheManagers will be automatically handled by theNoOpCacheManager
(and hence never returnnull
).
afterPropertiesSet
public void afterPropertiesSet()
Description copied from interface:InitializingBean
Invoked by the containingBeanFactory
after it has set all bean properties and satisfiedBeanFactoryAware
,ApplicationContextAware
etc.This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set.
- Specified by:
afterPropertiesSet
in interfaceInitializingBean
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 interfaceCacheManager
- Parameters:
name
- the cache identifier (must not benull
)- 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 interfaceCacheManager
- Returns:
- the names of all caches known by the cache manager