Class AbstractBeanFactoryBasedTargetSource
java.lang.Object
org.springframework.aop.target.AbstractBeanFactoryBasedTargetSource
- All Implemented Interfaces:
Serializable, TargetClassAware, TargetSource, Aware, BeanFactoryAware
- Direct Known Subclasses:
AbstractPrototypeBasedTargetSource, LazyInitTargetSource, SimpleBeanTargetSource
public abstract class AbstractBeanFactoryBasedTargetSource
extends Object
implements TargetSource, BeanFactoryAware, Serializable
Base class for
TargetSource implementations
that are based on a Spring BeanFactory,
delegating to Spring-managed bean instances.
Subclasses can create prototype instances or lazily access a
singleton target, for example. See LazyInitTargetSource and
AbstractPrototypeBasedTargetSource's subclasses for concrete strategies.
BeanFactory-based TargetSources are serializable. This involves
disconnecting the current target and turning into a SingletonTargetSource.
- Since:
- 1.1.4
- Author:
- Juergen Hoeller, Rod Johnson
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final org.apache.commons.logging.LogLogger available to subclasses.Name of the target bean we will create on each invocation. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidCopy configuration from the other AbstractBeanFactoryBasedTargetSource object.booleanReturn the owning BeanFactory.Return the name of the target bean in the factory.Return the type of targets returned by thisTargetSource.inthashCode()voidsetBeanFactory(BeanFactory beanFactory) Set the owning BeanFactory.voidsetTargetBeanName(String targetBeanName) Set the name of the target bean in the factory.voidsetTargetClass(Class<?> targetClass) Specify the target class explicitly, to avoid any kind of access to the target bean (for example, to avoid initialization of a FactoryBean instance).toString()Methods inherited from interface TargetSource
getTarget, isStatic, releaseTarget
-
Field Details
-
logger
protected final transient org.apache.commons.logging.Log loggerLogger available to subclasses. -
targetBeanName
-
-
Constructor Details
-
AbstractBeanFactoryBasedTargetSource
public AbstractBeanFactoryBasedTargetSource()
-
-
Method Details
-
setTargetBeanName
Set the name of the target bean in the factory.The target bean should not be a singleton, else the same instance will always be obtained from the factory, resulting in the same behavior as provided by
SingletonTargetSource.- Parameters:
targetBeanName- name of the target bean in the BeanFactory that owns this interceptor- See Also:
-
getTargetBeanName
Return the name of the target bean in the factory. -
setTargetClass
Specify the target class explicitly, to avoid any kind of access to the target bean (for example, to avoid initialization of a FactoryBean instance).Default is to detect the type automatically, through a
getTypecall on the BeanFactory (or even a fullgetBeancall as fallback). -
setBeanFactory
Set the owning BeanFactory. We need to save a reference so that we can use thegetBeanmethod on every invocation.- Specified by:
setBeanFactoryin interfaceBeanFactoryAware- Parameters:
beanFactory- owning BeanFactory (nevernull). The bean can immediately call methods on the factory.- See Also:
-
getBeanFactory
Return the owning BeanFactory. -
getTargetClass
Description copied from interface:TargetSourceReturn the type of targets returned by thisTargetSource.Can return
null, although certain usages of aTargetSourcemight just work with a predetermined target class.- Specified by:
getTargetClassin interfaceTargetClassAware- Specified by:
getTargetClassin interfaceTargetSource- Returns:
- the type of targets returned by this
TargetSource
-
copyFrom
Copy configuration from the other AbstractBeanFactoryBasedTargetSource object. Subclasses should override this if they wish to expose it.- Parameters:
other- object to copy configuration from
-
equals
-
hashCode
-
toString
-