Package org.springframework.cache.transaction

# Class TransactionAwareCacheManagerProxy

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

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

public class TransactionAwareCacheManagerProxy extends Object implements org.springframework.cache.CacheManager, org.springframework.beans.factory.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
Description
`TransactionAwareCacheManagerProxy()`
Create a new TransactionAwareCacheManagerProxy, setting the target CacheManager through the `setTargetCacheManager(org.springframework.cache.CacheManager)` bean property.
`TransactionAwareCacheManagerProxy(org.springframework.cache.CacheManager targetCacheManager)`
Create a new TransactionAwareCacheManagerProxy for the given target CacheManager.

## Method Summary

Modifier and Type
Method
Description
`void`
`afterPropertiesSet()`
`org.springframework.cache.Cache`
`getCache(String name)`
`Collection<String>`
`getCacheNames()`
`void`
`setTargetCacheManager(org.springframework.cache.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 Details

### TransactionAwareCacheManagerProxy

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

### TransactionAwareCacheManagerProxy

public TransactionAwareCacheManagerProxy(org.springframework.cache.CacheManager targetCacheManager)
Create a new TransactionAwareCacheManagerProxy for the given target CacheManager.

Parameters:
  `targetCacheManager` - the target CacheManager to proxy

## Method Details

### setTargetCacheManager

public void setTargetCacheManager(org.springframework.cache.CacheManager targetCacheManager)
Set the target CacheManager to proxy.

### afterPropertiesSet

public void afterPropertiesSet()

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

### getCache

@Nullable public org.springframework.cache.Cache getCache(String name)

Specified by:
  `getCache` in interface `org.springframework.cache.CacheManager`

### getCacheNames

public Collection<String> getCacheNames()

Specified by:
  `getCacheNames` in interface `org.springframework.cache.CacheManager`