org.springframework.cache.interceptor

## Class CacheProxyFactoryBean

- java.lang.Object
- - org.springframework.aop.framework.ProxyConfig
  - - org.springframework.aop.framework.AbstractSingletonProxyFactoryBean
    - - org.springframework.cache.interceptor.CacheProxyFactoryBean

- All Implemented Interfaces:
    Serializable, Aware, BeanClassLoaderAware, FactoryBean<Object>, InitializingBean

      public class CacheProxyFactoryBean
      extends AbstractSingletonProxyFactoryBean

  Proxy factory bean for simplified declarative caching handling. This is a convenient alternative to a standard AOP `ProxyFactoryBean` with a separate `CacheInterceptor` definition.

  This class is designed to facilitate declarative cache demarcation: namely, wrapping a singleton target object with a caching proxy, proxying all the interfaces that the target implements. Exists primarily for third-party framework integration. Users should favor the `cache:` XML namespace `@Cacheable` annotation. See the declarative annotation-based caching section of the Spring reference documentation for more information.

  Author:
    Costin Leau
  See Also:
    `ProxyFactoryBean`, `CacheInterceptor`, Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `CacheProxyFactoryBean()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected Object` | `createMainInterceptor()` Create the "main" interceptor for this proxy factory bean.
    `void` | `setCacheOperationSources(CacheOperationSource... cacheOperationSources)` Set the sources used to find cache operations.
    `void` | `setPointcut(Pointcut pointcut)` Set a pointcut, i.e a bean that can cause conditional invocation of the CacheInterceptor depending on method and attributes passed.

    - ### Methods inherited from class org.springframework.aop.framework.AbstractSingletonProxyFactoryBean

      `afterPropertiesSet, createTargetSource, getObject, getObjectType, isSingleton, setAdvisorAdapterRegistry, setBeanClassLoader, setPostInterceptors, setPreInterceptors, setProxyClassLoader, setProxyInterfaces, setTarget`

    - ### Methods inherited from class org.springframework.aop.framework.ProxyConfig

      `copyFrom, isExposeProxy, isFrozen, isOpaque, isOptimize, isProxyTargetClass, setExposeProxy, setFrozen, setOpaque, setOptimize, setProxyTargetClass, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### CacheProxyFactoryBean

          public CacheProxyFactoryBean()

  - ### Method Detail

    - #### setPointcut

          public void setPointcut(Pointcut pointcut)

      Set a pointcut, i.e a bean that can cause conditional invocation of the CacheInterceptor depending on method and attributes passed. Note: Additional interceptors are always invoked.
      See Also:
        `AbstractSingletonProxyFactoryBean.setPreInterceptors(java.lang.Object[])`, `AbstractSingletonProxyFactoryBean.setPostInterceptors(java.lang.Object[])`

    - #### createMainInterceptor

          protected Object createMainInterceptor()

      Description copied from class: `AbstractSingletonProxyFactoryBean`
      Create the "main" interceptor for this proxy factory bean. Typically an Advisor, but can also be any type of Advice.

      Pre-interceptors will be applied before, post-interceptors will be applied after this interceptor.

      Specified by:
        `createMainInterceptor` in class `AbstractSingletonProxyFactoryBean`

    - #### setCacheOperationSources

          public void setCacheOperationSources(CacheOperationSource... cacheOperationSources)

      Set the sources used to find cache operations.