Class ProxyFactory
- java.lang.Object
- org.springframework.aop.framework.ProxyConfig
- org.springframework.aop.framework.AdvisedSupport
- org.springframework.aop.framework.ProxyCreatorSupport
- 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 declarative setup in a bean factory. This class provides a simple way of obtaining and configuring AOP proxy instances in custom user 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
Constructors Constructor Description 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 specifiedTargetSource
, making the proxy implement the specified interface.ProxyFactory(Object target)
Create a new ProxyFactory.
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description 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 specifiedTargetSource
, 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 specifiedTargetSource
that extends the target class of theTargetSource
.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, 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 implementinterceptor
- the interceptor that the proxy should invoke
ProxyFactory
public ProxyFactory(Class<?> proxyInterface, TargetSource targetSource)
Create a ProxyFactory for the specifiedTargetSource
, making the proxy implement the specified interface.- Parameters:
proxyInterface
- the interface that the proxy should implementtargetSource
- 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 (ornull
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 implementinterceptor
- 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 specifiedTargetSource
, implementing the specified interface.- Parameters:
proxyInterface
- the interface that the proxy should implementtargetSource
- 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 specifiedTargetSource
that extends the target class of theTargetSource
.- Parameters:
targetSource
- the TargetSource that the proxy should invoke- Returns:
- the proxy object