@Target(value={METHOD,TYPE}) @Retention(value=RUNTIME) @Inherited @Documented public @interface CachePut
In contrast to the @Cacheable
annotation, this annotation
does not cause the advised method to be skipped. Rather, it always causes the
method to be invoked and its result to be stored in a cache.
CacheConfig
Modifier and Type | Optional Element and Description |
---|---|
String |
cacheManager
The bean name of the custom
CacheManager to use to
create a default CacheResolver if none
is set already. |
String[] |
cacheNames
Names of the caches to use for the cache put operation.
|
String |
cacheResolver
The bean name of the custom
CacheResolver to use. |
String |
condition
Spring Expression Language (SpEL) expression used for making the cache
put operation conditional.
|
String |
key
Spring Expression Language (SpEL) expression for computing the key dynamically.
|
String |
keyGenerator
The bean name of the custom
KeyGenerator to use. |
String |
unless
Spring Expression Language (SpEL) expression used to veto the cache put operation.
|
String[] |
value
Alias for
cacheNames() . |
@AliasFor(value="cacheNames") public abstract String[] value
cacheNames()
.@AliasFor(value="value") public abstract String[] cacheNames
Names may be used to determine the target cache (or caches), matching the qualifier value or bean name of a specific bean definition.
value()
,
CacheConfig.cacheNames()
public abstract String key
Default is ""
, meaning all method parameters are considered as a key, unless
a custom keyGenerator()
has been set.
public abstract String keyGenerator
KeyGenerator
to use.
Mutually exclusive with the key()
attribute.
CacheConfig.keyGenerator()
public abstract String cacheManager
CacheManager
to use to
create a default CacheResolver
if none
is set already.
Mutually exclusive with the cacheResolver()
attribute.
SimpleCacheResolver
,
CacheConfig.cacheManager()
public abstract String cacheResolver
CacheResolver
to use.CacheConfig.cacheResolver()
public abstract String condition
Default is ""
, meaning the method result is always cached.
public abstract String unless
Unlike condition()
, this expression is evaluated after the method
has been called and can therefore refer to the result
.
Default is ""
, meaning that caching is never vetoed.