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, @Nullable 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, @Nullable 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(Method, 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