public class AnnotationCacheOperationSource extends AbstractFallbackCacheOperationSource implements 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 | Class and Description | 
|---|---|
| protected static interface  | AnnotationCacheOperationSource.CacheOperationProviderCallback interface providing  CacheOperationinstance(s) based on
 a givenCacheAnnotationParser. | 
logger| Constructor and Description | 
|---|
| AnnotationCacheOperationSource()Create a default AnnotationCacheOperationSource, supporting public methods
 that carry the  CacheableandCacheEvictannotations. | 
| AnnotationCacheOperationSource(boolean publicMethodsOnly)Create a default  AnnotationCacheOperationSource, supporting public methods
 that carry theCacheableandCacheEvictannotations. | 
| AnnotationCacheOperationSource(CacheAnnotationParser... annotationParsers)Create a custom AnnotationCacheOperationSource. | 
| AnnotationCacheOperationSource(CacheAnnotationParser annotationParser)Create a custom AnnotationCacheOperationSource. | 
| AnnotationCacheOperationSource(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 Collection<CacheOperation> | determineCacheOperations(AnnotationCacheOperationSource.CacheOperationProvider provider)Determine the cache operation(s) for the given  AnnotationCacheOperationSource.CacheOperationProvider. | 
| boolean | equals(Object other) | 
| protected Collection<CacheOperation> | findCacheOperations(Class<?> clazz)Subclasses need to implement this to return the caching attribute for the
 given class, if any. | 
| protected Collection<CacheOperation> | findCacheOperations(Method method)Subclasses need to implement this to return the caching attribute for the
 given method, if any. | 
| int | hashCode() | 
| boolean | isCandidateClass(Class<?> targetClass)Determine whether the given class is a candidate for cache operations
 in the metadata format of this  CacheOperationSource. | 
getCacheKey, getCacheOperationspublic 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(Set<CacheAnnotationParser> annotationParsers)
annotationParsers - the CacheAnnotationParser to usepublic boolean isCandidateClass(Class<?> targetClass)
CacheOperationSourceCacheOperationSource.
 If this method returns false, the methods on the given class
 will not get traversed for CacheOperationSource.getCacheOperations(java.lang.reflect.Method, java.lang.Class<?>) introspection.
 Returning false is therefore an optimization for non-affected
 classes, whereas true simply means that the class needs to get
 fully introspected for each method on the given class individually.
isCandidateClass in interface CacheOperationSourcetargetClass - the class to introspectfalse if the class is known to have no cache operation
 metadata at class or method level; true otherwise. The default
 implementation returns true, leading to regular introspection.@Nullable protected Collection<CacheOperation> findCacheOperations(Class<?> clazz)
AbstractFallbackCacheOperationSourcefindCacheOperations in class AbstractFallbackCacheOperationSourceclazz - the class to retrieve the attribute fornull if none@Nullable protected Collection<CacheOperation> findCacheOperations(Method method)
AbstractFallbackCacheOperationSourcefindCacheOperations in class AbstractFallbackCacheOperationSourcemethod - the method to retrieve the attribute fornull if none@Nullable protected Collection<CacheOperation> determineCacheOperations(AnnotationCacheOperationSource.CacheOperationProvider provider)
AnnotationCacheOperationSource.CacheOperationProvider.
 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.
provider - the cache operation provider to usenull if none foundprotected boolean allowPublicMethodsOnly()
allowPublicMethodsOnly in class AbstractFallbackCacheOperationSource