Class CompositeCacheManager

java.lang.Object
org.springframework.cache.support.CompositeCacheManager
All Implemented Interfaces:
InitializingBean, CacheManager

public class CompositeCacheManager extends Object implements CacheManager, InitializingBean
Composite CacheManager implementation that iterates over a given collection of delegate CacheManager instances.

Allows NoOpCacheManager to be automatically added to the end of the list for handling cache declarations without a backing store. Otherwise, any custom CacheManager 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 from getCache(String) if they are unaware of the specified cache name, allowing for iteration to the next delegate in line. However, most CacheManager 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:
  • Constructor Details

    • 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 Details

    • setCacheManagers

      public void setCacheManagers(Collection<CacheManager> cacheManagers)
      Specify the CacheManagers to delegate to.
    • setFallbackToNoOpCache

      public void setFallbackToNoOpCache(boolean fallbackToNoOpCache)
      Indicate whether a NoOpCacheManager should be added at the end of the delegate list. In this case, any getCache requests not handled by the configured CacheManagers will be automatically handled by the NoOpCacheManager (and hence never return null).
    • afterPropertiesSet

      public void afterPropertiesSet()
      Description copied from interface: InitializingBean
      Invoked by the containing BeanFactory after it has set all bean properties and satisfied BeanFactoryAware, 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 interface InitializingBean
    • 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