public class TransactionAwareCacheDecorator extends Object implements org.springframework.cache.Cache
put(java.lang.Object, java.lang.Object)
, evict(java.lang.Object)
and
clear()
operations with Spring-managed transactions (through Spring's
TransactionSynchronizationManager
, performing the actual cache
put/evict/clear operation only in the after-commit phase of a successful
transaction. If no transaction is active, put(java.lang.Object, java.lang.Object)
, evict(java.lang.Object)
and
clear()
operations will be performed immediately, as usual.
Note: Use of immediate operations such as putIfAbsent(java.lang.Object, java.lang.Object)
cannot be deferred to the after-commit phase of a running transaction.
Use these with care in a transactional environment.
TransactionAwareCacheManagerProxy
Constructor and Description |
---|
TransactionAwareCacheDecorator(org.springframework.cache.Cache targetCache)
Create a new TransactionAwareCache for the given target Cache.
|
Modifier and Type | Method and Description |
---|---|
void |
clear() |
void |
evict(Object key) |
org.springframework.cache.Cache.ValueWrapper |
get(Object key) |
<T> T |
get(Object key,
Callable<T> valueLoader) |
<T> T |
get(Object key,
Class<T> type) |
String |
getName() |
Object |
getNativeCache() |
org.springframework.cache.Cache |
getTargetCache()
Return the target Cache that this Cache should delegate to.
|
void |
put(Object key,
Object value) |
org.springframework.cache.Cache.ValueWrapper |
putIfAbsent(Object key,
Object value) |
public TransactionAwareCacheDecorator(org.springframework.cache.Cache targetCache)
targetCache
- the target Cache to decoratepublic org.springframework.cache.Cache getTargetCache()
public String getName()
getName
in interface org.springframework.cache.Cache
public Object getNativeCache()
getNativeCache
in interface org.springframework.cache.Cache
@Nullable public org.springframework.cache.Cache.ValueWrapper get(Object key)
get
in interface org.springframework.cache.Cache
public <T> T get(Object key, @Nullable Class<T> type)
get
in interface org.springframework.cache.Cache
@Nullable public <T> T get(Object key, Callable<T> valueLoader)
get
in interface org.springframework.cache.Cache
public void put(Object key, @Nullable Object value)
put
in interface org.springframework.cache.Cache
@Nullable public org.springframework.cache.Cache.ValueWrapper putIfAbsent(Object key, @Nullable Object value)
putIfAbsent
in interface org.springframework.cache.Cache
public void evict(Object key)
evict
in interface org.springframework.cache.Cache
public void clear()
clear
in interface org.springframework.cache.Cache