Class AbstractFallbackCacheOperationSource
java.lang.Object
org.springframework.cache.interceptor.AbstractFallbackCacheOperationSource
- All Implemented Interfaces:
- CacheOperationSource
- Direct Known Subclasses:
- AnnotationCacheOperationSource
public abstract class AbstractFallbackCacheOperationSource
extends Object
implements CacheOperationSource
Abstract implementation of 
CacheOperationSource that caches operations
 for methods and implements a fallback policy: 1. specific target method;
 2. target class; 3. declaring method; 4. declaring class/interface.
 Defaults to using the target class's declared cache operations if none are associated with the target method. Any cache operations associated with the target method completely override any class-level declarations. If none found on the target class, the interface that the invoked method has been called through (in case of a JDK proxy) will be checked.
- Since:
- 3.1
- Author:
- Costin Leau, Juergen Hoeller
- 
Field SummaryFields
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionprotected booleanShould only public methods be allowed to have caching semantics?protected abstract Collection<CacheOperation>findCacheOperations(Class<?> clazz) Subclasses need to implement this to return the cache operations for the given class, if any.protected abstract Collection<CacheOperation>findCacheOperations(Method method) Subclasses need to implement this to return the cache operations for the given method, if any.protected ObjectgetCacheKey(Method method, Class<?> targetClass) Determine a cache key for the given method and target class.getCacheOperations(Method method, Class<?> targetClass) Return the collection of cache operations for this method, ornullif the method contains no cacheable annotations.booleanhasCacheOperations(Method method, Class<?> targetClass) Determine whether there are cache operations for the given method.Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.cache.interceptor.CacheOperationSourceisCandidateClass
- 
Field Details- 
loggerLogger available to subclasses.As this base class is not marked Serializable, the logger will be recreated after serialization - provided that the concrete subclass is Serializable. 
 
- 
- 
Constructor Details- 
AbstractFallbackCacheOperationSourcepublic AbstractFallbackCacheOperationSource()
 
- 
- 
Method Details- 
hasCacheOperationsDescription copied from interface:CacheOperationSourceDetermine whether there are cache operations for the given method.- Specified by:
- hasCacheOperationsin interface- CacheOperationSource
- Parameters:
- method- the method to introspect
- targetClass- the target class (can be- null, in which case the declaring class of the method must be used)
- See Also:
 
- 
getCacheOperations@Nullable public Collection<CacheOperation> getCacheOperations(Method method, @Nullable Class<?> targetClass) Description copied from interface:CacheOperationSourceReturn the collection of cache operations for this method, ornullif the method contains no cacheable annotations.- Specified by:
- getCacheOperationsin interface- CacheOperationSource
- Parameters:
- method- the method to introspect
- targetClass- the target class (can be- null, in which case the declaring class of the method must be used)
- Returns:
- all cache operations for this method, or nullif none found
 
- 
getCacheKeyDetermine a cache key for the given method and target class.Must not produce same key for overloaded methods. Must produce same key for different instances of the same method. - Parameters:
- method- the method (never- null)
- targetClass- the target class (may be- null)
- Returns:
- the cache key (never null)
 
- 
findCacheOperationsSubclasses need to implement this to return the cache operations for the given class, if any.- Parameters:
- clazz- the class to retrieve the cache operations for
- Returns:
- all cache operations associated with this class, or nullif none
 
- 
findCacheOperationsSubclasses need to implement this to return the cache operations for the given method, if any.- Parameters:
- method- the method to retrieve the cache operations for
- Returns:
- all cache operations associated with this method, or nullif none
 
- 
allowPublicMethodsOnlyprotected boolean allowPublicMethodsOnly()Should only public methods be allowed to have caching semantics?The default implementation returns false.
 
-