In the case of a the CacheResult
annotation,
if the cache can satisfy the request a result is returned by the method from
cache, not from method execution. For the mutative annotations such as
CacheResult
the annotation allows the cached
value to be mutated so that it will be correct the next time
CacheResult
is used.
Any operations against a cache via an annotation will have the same behaviour
as if the CacheResult
methods were used. So
if the same underlying cache is used for an annotation and a direct API call,
the same data would be returned. Annotations therefore provide an additional
API for interacting with caches.
To use these annotations you'll need a library or framework that processes these annotations and intercepts calls to your application objects to provide the caching behaviour. This would commonly be provided by a dependency injection framework such as defined by CDI in Java EE.
Interface | Description |
---|---|
CacheInvocationContext<A extends Annotation> |
Runtime information about an intercepted method invocation for a method
annotated with
CacheResult , CachePut , CacheRemove ,
or CacheRemoveAll |
CacheInvocationParameter |
A parameter to an intercepted method invocation.
|
CacheKeyGenerator |
Generates a
GeneratedCacheKey based on
a CacheKeyInvocationContext . |
CacheKeyInvocationContext<A extends Annotation> |
Runtime information about an intercepted method invocation for a method
annotated with
CacheResult , CachePut , or
CacheRemove . |
CacheMethodDetails<A extends Annotation> |
Static information about a method annotated with one of:
CacheResult , CachePut , CacheRemove , or CacheRemoveAll |
CacheResolver |
Determines the
Cache to use for an intercepted method invocation. |
CacheResolverFactory |
Determines the
CacheResolver to use for an annotated method. |
GeneratedCacheKey |
A
Serializable , immutable, thread-safe object that is used as a key,
automatically generated by a CacheKeyGenerator . |
Annotation Type | Description |
---|---|
CacheDefaults |
Allows the configuration of defaults for
CacheResult , CachePut ,
CacheRemove , and CacheRemoveAll at the class level. |
CacheKey |
Marks a method argument as part of the cache key.
|
CachePut |
When a method annotated with
CachePut is invoked a GeneratedCacheKey will be generated and Cache.put(Object,
Object) will be invoked on the specified cache storing the value marked with
CacheValue . |
CacheRemove |
When a method annotated with
CacheRemove is invoked a GeneratedCacheKey will be generated and Cache.remove(Object) will be
invoked on the specified cache. |
CacheRemoveAll |
When a method annotated with
CacheRemoveAll is invoked all elements in
the specified cache will be removed via the
Cache.removeAll() method |
CacheResult |
When a method annotated with
CacheResult is invoked a
GeneratedCacheKey will be generated and Cache.get(Object) is
called before the annotated method actually executes. |
CacheValue |
Marks the parameter to be cached for a method annotated with
CachePut . |
Copyright © 2017. All rights reserved.