Interface CacheOperationSource

All Known Implementing Classes:
AbstractFallbackCacheOperationSource, AnnotationCacheOperationSource, CompositeCacheOperationSource, NameMatchCacheOperationSource

public interface CacheOperationSource
Interface used by CacheInterceptor. Implementations know how to source cache operation attributes, whether from configuration, metadata attributes at source level, or elsewhere.
Since:
3.1
Author:
Costin Leau, Juergen Hoeller
  • Method Summary

    Modifier and Type
    Method
    Description
    getCacheOperations(Method method, Class<?> targetClass)
    Return the collection of cache operations for this method, or null if the method contains no cacheable annotations.
    default boolean
    hasCacheOperations(Method method, Class<?> targetClass)
    Determine whether there are cache operations for the given method.
    default boolean
    isCandidateClass(Class<?> targetClass)
    Determine whether the given class is a candidate for cache operations in the metadata format of this CacheOperationSource.
  • Method Details

    • isCandidateClass

      default boolean isCandidateClass(Class<?> targetClass)
      Determine whether the given class is a candidate for cache operations in the metadata format of this CacheOperationSource.

      If this method returns false, the methods on the given class will not get traversed for 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.

      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 returns true, leading to regular introspection.
      Since:
      5.2
      See Also:
    • hasCacheOperations

      default boolean hasCacheOperations(Method method, @Nullable Class<?> targetClass)
      Determine whether there are cache operations for the given method.
      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)
      Since:
      6.2
      See Also:
    • getCacheOperations

      @Nullable Collection<CacheOperation> getCacheOperations(Method method, @Nullable Class<?> targetClass)
      Return the collection of cache operations for this method, or null if the method contains no cacheable annotations.
      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 null if none found