Class NameMatchCacheOperationSource
- java.lang.Object
- org.springframework.cache.interceptor.NameMatchCacheOperationSource
- All Implemented Interfaces:
Serializable,CacheOperationSource
public class NameMatchCacheOperationSource extends Object implements CacheOperationSource, Serializable
SimpleCacheOperationSourceimplementation that allows attributes to be matched by registered name.- Since:
- 3.1
- Author:
- Costin Leau
- See Also:
- Serialized Form
Constructor Summary
Constructors Constructor Description NameMatchCacheOperationSource()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddCacheMethod(String methodName, Collection<CacheOperation> ops)Add an attribute for a cacheable method.booleanequals(Object other)Collection<CacheOperation>getCacheOperations(Method method, Class<?> targetClass)Return the collection of cache operations for this method, ornullif the method contains no cacheable annotations.inthashCode()protected booleanisMatch(String methodName, String mappedName)Return if the given method name matches the mapped name.voidsetNameMap(Map<String,Collection<CacheOperation>> nameMap)Set a name/attribute map, consisting of method names (e.g.StringtoString()
Constructor Detail
NameMatchCacheOperationSource
public NameMatchCacheOperationSource()
Method Detail
setNameMap
public void setNameMap(Map<String,Collection<CacheOperation>> nameMap)
Set a name/attribute map, consisting of method names (e.g. "myMethod") and CacheOperation instances (or Strings to be converted to CacheOperation instances).- See Also:
CacheOperation
addCacheMethod
public void addCacheMethod(String methodName, Collection<CacheOperation> ops)
Add an attribute for a cacheable method.Method names can be exact matches, or of the pattern "xxx*", "*xxx" or "*xxx*" for matching multiple methods.
- Parameters:
methodName- the name of the methodops- operation associated with the method
getCacheOperations
public Collection<CacheOperation> getCacheOperations(Method method, 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 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
nullif none found
isMatch
protected boolean isMatch(String methodName, String mappedName)
Return if the given method name matches the mapped name.The default implementation checks for "xxx*", "*xxx" and "*xxx*" matches, as well as direct equality. Can be overridden in subclasses.
- Parameters:
methodName- the method name of the classmappedName- the name in the descriptor- Returns:
- if the names match
- See Also:
PatternMatchUtils.simpleMatch(String, String)