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)
and
evictIfPresent(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) |
boolean |
evictIfPresent(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.
|
boolean |
invalidate() |
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 boolean evictIfPresent(Object key)
evictIfPresent
in interface org.springframework.cache.Cache
public void clear()
clear
in interface org.springframework.cache.Cache
public boolean invalidate()
invalidate
in interface org.springframework.cache.Cache