org.springframework.cache.transaction

## Class AbstractTransactionSupportingCacheManager

- java.lang.Object
- - org.springframework.cache.support.AbstractCacheManager
  - - org.springframework.cache.transaction.AbstractTransactionSupportingCacheManager

- All Implemented Interfaces:
    InitializingBean, CacheManager
  Direct Known Subclasses:
    EhCacheCacheManager, JCacheCacheManager

      public abstract class AbstractTransactionSupportingCacheManager
      extends AbstractCacheManager

  Base class for CacheManager implementations that want to support built-in awareness of Spring-managed transactions. This usually needs to be switched on explicitly through the `setTransactionAware(boolean)` bean property.
  Since:
    3.2
  Author:
    Juergen Hoeller
  See Also:
    `setTransactionAware(boolean)`, `TransactionAwareCacheDecorator`, `TransactionAwareCacheManagerProxy`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractTransactionSupportingCacheManager()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected Cache` | `decorateCache(Cache cache)` Decorate the given Cache object if necessary.
    `boolean` | `isTransactionAware()` Return whether this CacheManager has been configured to be transaction-aware.
    `void` | `setTransactionAware(boolean transactionAware)` Set whether this CacheManager should expose transaction-aware Cache objects.

    - ### Methods inherited from class org.springframework.cache.support.AbstractCacheManager

      `addCache, afterPropertiesSet, getCache, getCacheNames, getMissingCache, initializeCaches, loadCaches, lookupCache`

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

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

- - ### Constructor Detail

    - #### AbstractTransactionSupportingCacheManager

          public AbstractTransactionSupportingCacheManager()

  - ### Method Detail

    - #### setTransactionAware

          public void setTransactionAware(boolean transactionAware)

      Set whether this CacheManager should expose transaction-aware Cache objects.

      Default is "false". Set this to "true" to synchronize cache put/evict operations with ongoing Spring-managed transactions, performing the actual cache put/evict operation only in the after-commit phase of a successful transaction.

    - #### isTransactionAware

          public boolean isTransactionAware()

      Return whether this CacheManager has been configured to be transaction-aware.

    - #### decorateCache

          protected Cache decorateCache(Cache cache)

      Description copied from class: `AbstractCacheManager`
      Decorate the given Cache object if necessary.
      Overrides:
        `decorateCache` in class `AbstractCacheManager`
      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