public abstract class

CacheAspectSupport

extends Object
implements InitializingBean
java.lang.Object
   ↳ org.springframework.cache.interceptor.CacheAspectSupport
Known Direct Subclasses

Class Overview

Base class for caching aspects, such as the CacheInterceptor or an AspectJ aspect.

This enables the underlying Spring caching infrastructure to be used easily to implement an aspect for any aspect system.

Subclasses are responsible for calling methods in this class in the correct order.

If no caching name has been specified in the CacheOperationDefinition, the exposed name will be the fully-qualified class name + "." + method name (by default).

Uses the Strategy design pattern. A CacheManager implementation will perform the actual transaction management, and a CacheDefinitionSource is used for determining caching operation definitions.

A cache aspect is serializable if its CacheManager and CacheDefinitionSource are serializable.

Summary

Nested Classes
class CacheAspectSupport.CacheOperationContext  
Fields
protected final Log logger
Public Constructors
CacheAspectSupport()
Public Methods
void afterPropertiesSet()
Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).
CacheDefinitionSource getCacheDefinitionSource()
CacheManager getCacheManager()
KeyGenerator getKeyGenerator()
void setCacheDefinitionSources(CacheDefinitionSource... cacheDefinitionSources)
Set multiple cache definition sources which are used to find the cache attributes.
void setCacheManager(CacheManager cacheManager)
<K> void setKeyGenerator(KeyGenerator<K> keyGenerator)
Protected Methods
Object execute(Callable<Object> invocation, Object target, Method method, Object[] args)
Collection<Cache<?, ?>> getCaches(CacheDefinition definition)
CacheAspectSupport.CacheOperationContext getOperationContext(CacheDefinition definition, Method method, Object[] args, Class<?> targetClass)
String methodIdentification(Method method, Class<?> targetClass)
Convenience method to return a String representation of this Method for use in logging.
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.springframework.beans.factory.InitializingBean

Fields

protected final Log logger

Public Constructors

public CacheAspectSupport ()

Public Methods

public void afterPropertiesSet ()

Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).

This method allows the bean instance to perform initialization only possible when all bean properties have been set and to throw an exception in the event of misconfiguration.

public CacheDefinitionSource getCacheDefinitionSource ()

public CacheManager getCacheManager ()

public KeyGenerator getKeyGenerator ()

public void setCacheDefinitionSources (CacheDefinitionSource... cacheDefinitionSources)

Set multiple cache definition sources which are used to find the cache attributes. Will build a CompositeCachingDefinitionSource for the given sources.

public void setCacheManager (CacheManager cacheManager)

public void setKeyGenerator (KeyGenerator<K> keyGenerator)

Protected Methods

protected Object execute (Callable<Object> invocation, Object target, Method method, Object[] args)

Throws
Exception

protected Collection<Cache<?, ?>> getCaches (CacheDefinition definition)

protected CacheAspectSupport.CacheOperationContext getOperationContext (CacheDefinition definition, Method method, Object[] args, Class<?> targetClass)

protected String methodIdentification (Method method, Class<?> targetClass)

Convenience method to return a String representation of this Method for use in logging. Can be overridden in subclasses to provide a different identifier for the given method.

Parameters
method the method we're interested in
targetClass class the method is on
Returns
  • log message identifying this method