@Target(value={METHOD,TYPE}) @Retention(value=RUNTIME) @Inherited @Documented @CacheConfig @Type(value=CacheInterceptor.class) @Repeatable(value=PutOperations.class) public @interface CachePut
An annotation that can be applied at the type or method level to indicate that the annotated operation should
 cause the return value to be cached within the given cache name. Unlike Cacheable this annotation will never
 skip the original invocation.
| Modifier and Type | Optional Element and Description | 
|---|---|
| boolean | asyncWhether the  CachePutoperation should be performed asynchronously and not block the returning value | 
| String[] | cacheNamesAlias for  CacheConfig.cacheNames(). | 
| Class<? extends CacheKeyGenerator> | keyGeneratorAlias for  CacheConfig.keyGenerator(). | 
| String[] | parametersLimit the automatic  CacheKeyGeneratorto the given parameter names. | 
| String[] | valueAlias for  CacheConfig.cacheNames(). | 
@AliasFor(member="cacheNames") public abstract String[] value
CacheConfig.cacheNames().@AliasFor(annotation=CacheConfig.class, member="cacheNames") public abstract String[] cacheNames
CacheConfig.cacheNames().@AliasFor(annotation=CacheConfig.class, member="keyGenerator") public abstract Class<? extends CacheKeyGenerator> keyGenerator
CacheConfig.keyGenerator().public abstract String[] parameters
CacheKeyGenerator to the given parameter names. Mutually exclusive with
 keyGenerator()public abstract boolean async
Whether the CachePut operation should be performed asynchronously and not block the returning value
The value if async impacts behaviour in the following ways:
AsyncCacheErrorHandler.CompletableFuture and the value is false
 the future will not complete until the CachePut operation is complete.CompletableFuture and the value is true
 the future will complete prior to any CachePut operations completing and the operations will be
 executing asynchronously with errors logged by AsyncCacheErrorHandler.