Package org.springframework.cache.annotation

# Interface CacheAnnotationParser

All Known Implementing Classes:
  `SpringCacheAnnotationParser`

public interface CacheAnnotationParser
Strategy interface for parsing known caching annotation types. `AnnotationCacheOperationSource` delegates to such parsers for supporting specific annotation types such as Spring's own `Cacheable`, `CachePut` and`CacheEvict`.

Since:
  3.1
Author:
  Costin Leau, Stephane Nicoll, Juergen Hoeller
See Also:
  - `AnnotationCacheOperationSource`
  - `SpringCacheAnnotationParser`

## Method Summary

Modifier and Type
Method
Description
`default boolean`
`isCandidateClass(Class<?> targetClass)`
Determine whether the given class is a candidate for cache operations in the annotation format of this `CacheAnnotationParser`.
`Collection<CacheOperation>`
`parseCacheAnnotations(Class<?> type)`
Parse the cache definition for the given class, based on an annotation type understood by this parser.
`Collection<CacheOperation>`
`parseCacheAnnotations(Method method)`
Parse the cache definition for the given method, based on an annotation type understood by this parser.

## Method Details

### isCandidateClass

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

If this method returns `false`, the methods on the given class will not get traversed for `#parseCacheAnnotations` 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 annotations at class or method level; `true` otherwise. The default implementation returns `true`, leading to regular introspection.
Since:
  5.2

### parseCacheAnnotations

@Nullable Collection<CacheOperation> parseCacheAnnotations(Class<?> type)
Parse the cache definition for the given class, based on an annotation type understood by this parser.

This essentially parses a known cache annotation into Spring's metadata attribute class. Returns `null` if the class is not cacheable.

Parameters:
  `type` - the annotated class
Returns:
  the configured caching operation, or `null` if none found
See Also:
  - `AnnotationCacheOperationSource.findCacheOperations(Class)`

### parseCacheAnnotations

@Nullable Collection<CacheOperation> parseCacheAnnotations(Method method)
Parse the cache definition for the given method, based on an annotation type understood by this parser.

This essentially parses a known cache annotation into Spring's metadata attribute class. Returns `null` if the method is not cacheable.

Parameters:
  `method` - the annotated method
Returns:
  the configured caching operation, or `null` if none found
See Also:
  - `AnnotationCacheOperationSource.findCacheOperations(Method)`