org.springframework.aop.framework
Class ProxyFactory

java.lang.Object
  extended by org.springframework.aop.framework.ProxyConfig
      extended by org.springframework.aop.framework.AdvisedSupport
          extended by org.springframework.aop.framework.ProxyCreatorSupport
              extended by org.springframework.aop.framework.ProxyFactory
All Implemented Interfaces:
Serializable, Advised, TargetClassAware

public class ProxyFactory
extends ProxyCreatorSupport

Factory for AOP proxies for programmatic use, rather than via a bean factory. This class provides a simple way of obtaining and configuring AOP proxies in code.

Since:
14.03.2003
Author:
Rod Johnson, Juergen Hoeller, Rob Harrop
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.springframework.aop.framework.AdvisedSupport
EMPTY_TARGET_SOURCE
 
Constructor Summary
ProxyFactory()
          Create a new ProxyFactory.
ProxyFactory(Class[] proxyInterfaces)
          Create a new ProxyFactory.
ProxyFactory(Class proxyInterface, Interceptor interceptor)
          Create a new ProxyFactory for the given interface and interceptor.
ProxyFactory(Class proxyInterface, TargetSource targetSource)
          Create a ProxyFactory for the specified TargetSource, making the proxy implement the specified interface.
ProxyFactory(Object target)
          Create a new ProxyFactory.
 
Method Summary
 Object getProxy()
          Create a new proxy according to the settings in this factory.
static
<T> T
getProxy(Class<T> proxyInterface, Interceptor interceptor)
          Create a new proxy for the given interface and interceptor.
static
<T> T
getProxy(Class<T> proxyInterface, TargetSource targetSource)
          Create a proxy for the specified TargetSource, implementing the specified interface.
 Object getProxy(ClassLoader classLoader)
          Create a new proxy according to the settings in this factory.
static Object getProxy(TargetSource targetSource)
          Create a proxy for the specified TargetSource that extends the target class of the TargetSource.
 
Methods inherited from class org.springframework.aop.framework.ProxyCreatorSupport
addListener, adviceChanged, createAopProxy, getAopProxyFactory, isActive, removeListener, setAopProxyFactory
 
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

ProxyFactory

public ProxyFactory()
Create a new ProxyFactory.


ProxyFactory

public ProxyFactory(Object target)
Create a new ProxyFactory.

Will proxy all interfaces that the given target implements.

Parameters:
target - the target object to be proxied

ProxyFactory

public ProxyFactory(Class[] proxyInterfaces)
Create a new ProxyFactory.

No target, only interfaces. Must add interceptors.

Parameters:
proxyInterfaces - the interfaces that the proxy should implement

ProxyFactory

public ProxyFactory(Class proxyInterface,
                    Interceptor interceptor)
Create a new ProxyFactory for the given interface and interceptor.

Convenience method for creating a proxy for a single interceptor, assuming that the interceptor handles all calls itself rather than delegating to a target, like in the case of remoting proxies.

Parameters:
proxyInterface - the interface that the proxy should implement
interceptor - the interceptor that the proxy should invoke

ProxyFactory

public ProxyFactory(Class proxyInterface,
                    TargetSource targetSource)
Create a ProxyFactory for the specified TargetSource, making the proxy implement the specified interface.

Parameters:
proxyInterface - the interface that the proxy should implement
targetSource - the TargetSource that the proxy should invoke
Method Detail

getProxy

public Object getProxy()
Create a new proxy according to the settings in this factory.

Can be called repeatedly. Effect will vary if we've added or removed interfaces. Can add and remove interceptors.

Uses a default class loader: Usually, the thread context class loader (if necessary for proxy creation).

Returns:
the proxy object

getProxy

public Object getProxy(ClassLoader classLoader)
Create a new proxy according to the settings in this factory.

Can be called repeatedly. Effect will vary if we've added or removed interfaces. Can add and remove interceptors.

Uses the given class loader (if necessary for proxy creation).

Parameters:
classLoader - the class loader to create the proxy with (or null for the low-level proxy facility's default)
Returns:
the proxy object

getProxy

public static <T> T getProxy(Class<T> proxyInterface,
                             Interceptor interceptor)
Create a new proxy for the given interface and interceptor.

Convenience method for creating a proxy for a single interceptor, assuming that the interceptor handles all calls itself rather than delegating to a target, like in the case of remoting proxies.

Parameters:
proxyInterface - the interface that the proxy should implement
interceptor - the interceptor that the proxy should invoke
Returns:
the proxy object
See Also:
ProxyFactory(Class, org.aopalliance.intercept.Interceptor)

getProxy

public static <T> T getProxy(Class<T> proxyInterface,
                             TargetSource targetSource)
Create a proxy for the specified TargetSource, implementing the specified interface.

Parameters:
proxyInterface - the interface that the proxy should implement
targetSource - the TargetSource that the proxy should invoke
Returns:
the proxy object
See Also:
ProxyFactory(Class, org.springframework.aop.TargetSource)

getProxy

public static Object getProxy(TargetSource targetSource)
Create a proxy for the specified TargetSource that extends the target class of the TargetSource.

Parameters:
targetSource - the TargetSource that the proxy should invoke
Returns:
the proxy object