Class CompositeCacheOperationSource
- java.lang.Object
- org.springframework.cache.interceptor.CompositeCacheOperationSource
- All Implemented Interfaces:
Serializable
,CacheOperationSource
public class CompositeCacheOperationSource extends Object implements CacheOperationSource, Serializable
CompositeCacheOperationSource
implementation that iterates over a given array ofCacheOperationSource
instances.- Since:
- 3.1
- Author:
- Costin Leau, Juergen Hoeller
- See Also:
- Serialized Form
Constructor Summary
Constructors Constructor Description CompositeCacheOperationSource(CacheOperationSource... cacheOperationSources)
Create a new CompositeCacheOperationSource for the given sources.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Collection<CacheOperation>
getCacheOperations(Method method, Class<?> targetClass)
Return the collection of cache operations for this method, ornull
if the method contains no cacheable annotations.CacheOperationSource[]
getCacheOperationSources()
Return theCacheOperationSource
instances that thisCompositeCacheOperationSource
combines.boolean
isCandidateClass(Class<?> targetClass)
Determine whether the given class is a candidate for cache operations in the metadata format of thisCacheOperationSource
.
Constructor Detail
CompositeCacheOperationSource
public CompositeCacheOperationSource(CacheOperationSource... cacheOperationSources)
Create a new CompositeCacheOperationSource for the given sources.- Parameters:
cacheOperationSources
- the CacheOperationSource instances to combine
Method Detail
getCacheOperationSources
public final CacheOperationSource[] getCacheOperationSources()
Return theCacheOperationSource
instances that thisCompositeCacheOperationSource
combines.
isCandidateClass
public boolean isCandidateClass(Class<?> targetClass)
Description copied from interface:CacheOperationSource
Determine whether the given class is a candidate for cache operations in the metadata format of thisCacheOperationSource
.If this method returns
false
, the methods on the given class will not get traversed forCacheOperationSource.getCacheOperations(java.lang.reflect.Method, java.lang.Class<?>)
introspection. Returningfalse
is therefore an optimization for non-affected classes, whereastrue
simply means that the class needs to get fully introspected for each method on the given class individually.- Specified by:
isCandidateClass
in interfaceCacheOperationSource
- Parameters:
targetClass
- the class to introspect- Returns:
false
if the class is known to have no cache operation metadata at class or method level;true
otherwise. The default implementation returnstrue
, leading to regular introspection.
getCacheOperations
@Nullable public Collection<CacheOperation> getCacheOperations(Method method, @Nullable Class<?> targetClass)
Description copied from interface:CacheOperationSource
Return the collection of cache operations for this method, ornull
if the method contains no cacheable annotations.- Specified by:
getCacheOperations
in interfaceCacheOperationSource
- Parameters:
method
- the method to introspecttargetClass
- the target class (may benull
, in which case the declaring class of the method must be used)- Returns:
- all cache operations for this method, or
null
if none found