public class AnnotationCacheOperationSource extends AbstractFallbackCacheOperationSource implements java.io.Serializable
CacheOperationSource interface for working with caching metadata in annotation format.
This class reads Spring's Cacheable, CachePut and CacheEvict
annotations and exposes corresponding caching operation definition to Spring's cache
infrastructure. This class may also serve as base class for a custom
CacheOperationSource.
| Modifier and Type | Field and Description |
|---|---|
private java.util.Set<CacheAnnotationParser> |
annotationParsers |
private boolean |
publicMethodsOnly |
logger| Constructor and Description |
|---|
AnnotationCacheOperationSource()
Create a default AnnotationCacheOperationSource, supporting public methods
that carry the
Cacheable and CacheEvict annotations. |
AnnotationCacheOperationSource(boolean publicMethodsOnly)
Create a default
AnnotationCacheOperationSource, supporting public methods
that carry the Cacheable and CacheEvict annotations. |
AnnotationCacheOperationSource(CacheAnnotationParser... annotationParsers)
Create a custom AnnotationCacheOperationSource.
|
AnnotationCacheOperationSource(CacheAnnotationParser annotationParser)
Create a custom AnnotationCacheOperationSource.
|
AnnotationCacheOperationSource(java.util.Set<CacheAnnotationParser> annotationParsers)
Create a custom AnnotationCacheOperationSource.
|
| Modifier and Type | Method and Description |
|---|---|
protected boolean |
allowPublicMethodsOnly()
By default, only public methods can be made cacheable.
|
protected java.util.Collection<CacheOperation> |
determineCacheOperations(java.lang.reflect.AnnotatedElement ae)
Determine the cache operation(s) for the given method or class.
|
boolean |
equals(java.lang.Object other) |
protected java.util.Collection<CacheOperation> |
findCacheOperations(java.lang.Class<?> clazz)
Subclasses need to implement this to return the caching attribute
for the given class, if any.
|
protected java.util.Collection<CacheOperation> |
findCacheOperations(java.lang.reflect.Method method)
Subclasses need to implement this to return the caching attribute
for the given method, if any.
|
int |
hashCode() |
getCacheKey, getCacheOperationsprivate final boolean publicMethodsOnly
private final java.util.Set<CacheAnnotationParser> annotationParsers
public AnnotationCacheOperationSource()
Cacheable and CacheEvict annotations.public AnnotationCacheOperationSource(boolean publicMethodsOnly)
AnnotationCacheOperationSource, supporting public methods
that carry the Cacheable and CacheEvict annotations.publicMethodsOnly - whether to support only annotated public methods
typically for use with proxy-based AOP), or protected/private methods as well
(typically used with AspectJ class weaving)public AnnotationCacheOperationSource(CacheAnnotationParser annotationParser)
annotationParser - the CacheAnnotationParser to usepublic AnnotationCacheOperationSource(CacheAnnotationParser... annotationParsers)
annotationParsers - the CacheAnnotationParser to usepublic AnnotationCacheOperationSource(java.util.Set<CacheAnnotationParser> annotationParsers)
annotationParsers - the CacheAnnotationParser to useprotected java.util.Collection<CacheOperation> findCacheOperations(java.lang.Class<?> clazz)
AbstractFallbackCacheOperationSourcefindCacheOperations in class AbstractFallbackCacheOperationSourceclazz - the class to retrieve the attribute fornull if none)protected java.util.Collection<CacheOperation> findCacheOperations(java.lang.reflect.Method method)
AbstractFallbackCacheOperationSourcefindCacheOperations in class AbstractFallbackCacheOperationSourcemethod - the method to retrieve the attribute fornull if none)protected java.util.Collection<CacheOperation> determineCacheOperations(java.lang.reflect.AnnotatedElement ae)
This implementation delegates to configured
CacheAnnotationParsers for parsing known annotations into
Spring's metadata attribute class.
Can be overridden to support custom annotations that carry caching metadata.
ae - the annotated method or classnull if none foundprotected boolean allowPublicMethodsOnly()
allowPublicMethodsOnly in class AbstractFallbackCacheOperationSourcepublic boolean equals(java.lang.Object other)
equals in class java.lang.Objectpublic int hashCode()
hashCode in class java.lang.Object