org.springframework.cache.transaction

## Class TransactionAwareCacheManagerProxy

- java.lang.Object
- - org.springframework.cache.transaction.TransactionAwareCacheManagerProxy

- All Implemented Interfaces:
    InitializingBean, CacheManager

      public class TransactionAwareCacheManagerProxy
      extends Object
      implements CacheManager, InitializingBean

  Proxy for a target `CacheManager`, exposing transaction-aware `Cache` objects which synchronize their `Cache.put(java.lang.Object, java.lang.Object)` operations with Spring-managed transactions (through Spring's `TransactionSynchronizationManager`), performing the actual cache put operation only in the after-commit phase of a successful transaction. If no transaction is active, `Cache.put(java.lang.Object, java.lang.Object)` operations will be performed immediately, as usual.
  Since:
    3.2
  Author:
    Juergen Hoeller
  See Also:
    `setTargetCacheManager(org.springframework.cache.CacheManager)`, `TransactionAwareCacheDecorator`, `TransactionSynchronizationManager`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `TransactionAwareCacheManagerProxy()` Create a new TransactionAwareCacheManagerProxy, setting the target CacheManager through the `setTargetCacheManager(org.springframework.cache.CacheManager)` bean property.
    `TransactionAwareCacheManagerProxy(CacheManager targetCacheManager)` Create a new TransactionAwareCacheManagerProxy for the given target CacheManager.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `afterPropertiesSet()` Invoked by the containing `BeanFactory` after it has set all bean properties and satisfied `BeanFactoryAware`, `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` | `setTargetCacheManager(CacheManager targetCacheManager)` Set the target CacheManager to proxy.

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

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

- - ### Constructor Detail

    - #### TransactionAwareCacheManagerProxy

          public TransactionAwareCacheManagerProxy()

      Create a new TransactionAwareCacheManagerProxy, setting the target CacheManager through the `setTargetCacheManager(org.springframework.cache.CacheManager)` bean property.

    - #### TransactionAwareCacheManagerProxy

          public TransactionAwareCacheManagerProxy(CacheManager targetCacheManager)

      Create a new TransactionAwareCacheManagerProxy for the given target CacheManager.
      Parameters:
        `targetCacheManager` - the target CacheManager to proxy

  - ### Method Detail

    - #### setTargetCacheManager

          public void setTargetCacheManager(CacheManager targetCacheManager)

      Set the target CacheManager to proxy.

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