public abstract class AbstractSingletonProxyFactoryBean extends ProxyConfig implements org.springframework.beans.factory.FactoryBean<Object>, org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.InitializingBean
FactoryBean
types that produce singleton-scoped
proxy objects.
Manages pre- and post-interceptors (references, rather than
interceptor names, as in ProxyFactoryBean
) and provides
consistent interface management.
Constructor and Description |
---|
AbstractSingletonProxyFactoryBean() |
Modifier and Type | Method and Description |
---|---|
void |
afterPropertiesSet() |
protected abstract Object |
createMainInterceptor()
Create the "main" interceptor for this proxy factory bean.
|
protected TargetSource |
createTargetSource(Object target)
Determine a TargetSource for the given target (or TargetSource).
|
Object |
getObject() |
Class<?> |
getObjectType() |
boolean |
isSingleton() |
protected void |
postProcessProxyFactory(ProxyFactory proxyFactory)
A hook for subclasses to post-process the
ProxyFactory
before creating the proxy instance with it. |
void |
setAdvisorAdapterRegistry(AdvisorAdapterRegistry advisorAdapterRegistry)
Specify the AdvisorAdapterRegistry to use.
|
void |
setBeanClassLoader(ClassLoader classLoader) |
void |
setPostInterceptors(Object[] postInterceptors)
Set additional interceptors (or advisors) to be applied after the
implicit transaction interceptor.
|
void |
setPreInterceptors(Object[] preInterceptors)
Set additional interceptors (or advisors) to be applied before the
implicit transaction interceptor, e.g.
|
void |
setProxyClassLoader(ClassLoader classLoader)
Set the ClassLoader to generate the proxy class in.
|
void |
setProxyInterfaces(Class<?>[] proxyInterfaces)
Specify the set of interfaces being proxied.
|
void |
setTarget(Object target)
Set the target object, that is, the bean to be wrapped with a transactional proxy.
|
copyFrom, isExposeProxy, isFrozen, isOpaque, isOptimize, isProxyTargetClass, setExposeProxy, setFrozen, setOpaque, setOptimize, setProxyTargetClass, toString
public void setTarget(Object target)
The target may be any object, in which case a SingletonTargetSource will be created. If it is a TargetSource, no wrapper TargetSource is created: This enables the use of a pooling or prototype TargetSource etc.
public void setProxyInterfaces(Class<?>[] proxyInterfaces)
If not specified (the default), the AOP infrastructure works out which interfaces need proxying by analyzing the target, proxying all the interfaces that the target object implements.
public void setPreInterceptors(Object[] preInterceptors)
You may specify any AOP Alliance MethodInterceptors or other Spring AOP Advices, as well as Spring AOP Advisors.
PerformanceMonitorInterceptor
public void setPostInterceptors(Object[] postInterceptors)
You may specify any AOP Alliance MethodInterceptors or other Spring AOP Advices, as well as Spring AOP Advisors.
public void setAdvisorAdapterRegistry(AdvisorAdapterRegistry advisorAdapterRegistry)
GlobalAdvisorAdapterRegistry
public void setProxyClassLoader(ClassLoader classLoader)
Default is the bean ClassLoader, i.e. the ClassLoader used by the containing BeanFactory for loading all bean classes. This can be overridden here for specific proxies.
public void setBeanClassLoader(ClassLoader classLoader)
setBeanClassLoader
in interface org.springframework.beans.factory.BeanClassLoaderAware
public void afterPropertiesSet()
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
protected TargetSource createTargetSource(Object target)
target
- the target. If this is an implementation of TargetSource it is
used as our TargetSource; otherwise it is wrapped in a SingletonTargetSource.protected void postProcessProxyFactory(ProxyFactory proxyFactory)
ProxyFactory
before creating the proxy instance with it.proxyFactory
- the AOP ProxyFactory about to be usedpublic Object getObject()
getObject
in interface org.springframework.beans.factory.FactoryBean<Object>
@Nullable public Class<?> getObjectType()
getObjectType
in interface org.springframework.beans.factory.FactoryBean<Object>
public final boolean isSingleton()
isSingleton
in interface org.springframework.beans.factory.FactoryBean<Object>
protected abstract Object createMainInterceptor()
Pre-interceptors will be applied before, post-interceptors will be applied after this interceptor.