org.springframework.aop.framework

## Class ProxyCreatorSupport

- java.lang.Object
- - org.springframework.aop.framework.ProxyConfig
  - - org.springframework.aop.framework.AdvisedSupport
    - - org.springframework.aop.framework.ProxyCreatorSupport

- All Implemented Interfaces:
    Serializable, Advised, TargetClassAware
  Direct Known Subclasses:
    AspectJProxyFactory, ProxyFactory, ProxyFactoryBean

      public class ProxyCreatorSupport
      extends AdvisedSupport

  Base class for proxy factories. Provides convenient access to a configurable AopProxyFactory.
  Since:
    2.0.3
  Author:
    Juergen Hoeller
  See Also:
    `createAopProxy()`, Serialized Form

- - ### Field Summary

    - ### Fields inherited from class org.springframework.aop.framework.AdvisedSupport

      `EMPTY_TARGET_SOURCE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ProxyCreatorSupport()` Create a new ProxyCreatorSupport instance.
    `ProxyCreatorSupport(AopProxyFactory aopProxyFactory)` Create a new ProxyCreatorSupport instance.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addListener(AdvisedSupportListener listener)` Add the given AdvisedSupportListener to this proxy configuration.
    `protected void` | `adviceChanged()` Propagate advice change event to all AdvisedSupportListeners.
    `protected AopProxy` | `createAopProxy()` Subclasses should call this to get a new AOP proxy.
    `AopProxyFactory` | `getAopProxyFactory()` Return the AopProxyFactory that this ProxyConfig uses.
    `protected boolean` | `isActive()` Subclasses can call this to check whether any AOP proxies have been created yet.
    `void` | `removeListener(AdvisedSupportListener listener)` Remove the given AdvisedSupportListener from this proxy configuration.
    `void` | `setAopProxyFactory(AopProxyFactory aopProxyFactory)` Customize the AopProxyFactory, allowing different strategies to be dropped in without changing the core framework.

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

      `addAdvice, addAdvice, addAdvisor, addAdvisor, addAdvisors, addAdvisors, addAllAdvisors, addInterface, adviceIncluded, copyConfigurationFrom, copyConfigurationFrom, countAdvicesOfType, getAdvisorChainFactory, getAdvisors, getAdvisorsInternal, getInterceptorsAndDynamicInterceptionAdvice, getProxiedInterfaces, getTargetClass, getTargetSource, indexOf, indexOf, isInterfaceProxied, isPreFiltered, removeAdvice, removeAdvisor, removeAdvisor, removeInterface, replaceAdvisor, setAdvisorChainFactory, setInterfaces, setPreFiltered, setTarget, setTargetClass, setTargetSource, toProxyConfigString, toString, updateAdvisorArray`

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

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

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

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

    - ### Methods inherited from interface org.springframework.aop.framework.Advised

      `isExposeProxy, isFrozen, isProxyTargetClass, setExposeProxy`

- - ### Constructor Detail

    - #### ProxyCreatorSupport

          public ProxyCreatorSupport()

      Create a new ProxyCreatorSupport instance.

    - #### ProxyCreatorSupport

          public ProxyCreatorSupport(AopProxyFactory aopProxyFactory)

      Create a new ProxyCreatorSupport instance.
      Parameters:
        `aopProxyFactory` - the AopProxyFactory to use

  - ### Method Detail

    - #### setAopProxyFactory

          public void setAopProxyFactory(AopProxyFactory aopProxyFactory)

      Customize the AopProxyFactory, allowing different strategies to be dropped in without changing the core framework.

      Default is `DefaultAopProxyFactory`, using dynamic JDK proxies or CGLIB proxies based on the requirements.

    - #### getAopProxyFactory

          public AopProxyFactory getAopProxyFactory()

      Return the AopProxyFactory that this ProxyConfig uses.

    - #### addListener

          public void addListener(AdvisedSupportListener listener)

      Add the given AdvisedSupportListener to this proxy configuration.
      Parameters:
        `listener` - the listener to register

    - #### removeListener

          public void removeListener(AdvisedSupportListener listener)

      Remove the given AdvisedSupportListener from this proxy configuration.
      Parameters:
        `listener` - the listener to deregister

    - #### createAopProxy

          protected final AopProxy createAopProxy()

      Subclasses should call this to get a new AOP proxy. They should not create an AOP proxy with `this` as an argument.

    - #### adviceChanged

          protected void adviceChanged()

      Propagate advice change event to all AdvisedSupportListeners.
      Overrides:
        `adviceChanged` in class `AdvisedSupport`
      See Also:
        `AdvisedSupportListener.adviceChanged(org.springframework.aop.framework.AdvisedSupport)`

    - #### isActive

          protected final boolean isActive()

      Subclasses can call this to check whether any AOP proxies have been created yet.