Class 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
    • 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 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