org.springframework.aop.support
Class AbstractBeanFactoryPointcutAdvisor

java.lang.Object
  extended by org.springframework.aop.support.AbstractPointcutAdvisor
      extended by org.springframework.aop.support.AbstractBeanFactoryPointcutAdvisor
All Implemented Interfaces:
Serializable, Advisor, PointcutAdvisor, BeanFactoryAware, Ordered
Direct Known Subclasses:
BeanFactoryTransactionAttributeSourceAdvisor, DefaultBeanFactoryPointcutAdvisor

public abstract class AbstractBeanFactoryPointcutAdvisor
extends AbstractPointcutAdvisor
implements BeanFactoryAware

Abstract BeanFactory-based PointcutAdvisor that allows for any Advice to be configured as reference to an Advice bean in a BeanFactory.

Specifying the name of an advice bean instead of the advice object itself (if running within a BeanFactory) increases loose coupling at initialization time, in order to not initialize the advice object until the pointcut actually matches.

Since:
2.0.2
Author:
Juergen Hoeller
See Also:
setAdviceBeanName(java.lang.String), DefaultBeanFactoryPointcutAdvisor, Serialized Form

Field Summary
 
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
 
Constructor Summary
AbstractBeanFactoryPointcutAdvisor()
           
 
Method Summary
 Advice getAdvice()
          Return the advice part of this aspect.
 String getAdviceBeanName()
          Return the name of the advice bean that this advisor refers to, if any.
 void setAdviceBeanName(String adviceBeanName)
          Specify the name of the advice bean that this advisor should refer to.
 void setBeanFactory(BeanFactory beanFactory)
          Callback that supplies the owning factory to a bean instance.
 String toString()
           
 
Methods inherited from class org.springframework.aop.support.AbstractPointcutAdvisor
equals, getOrder, hashCode, isPerInstance, setOrder
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.springframework.aop.PointcutAdvisor
getPointcut
 

Constructor Detail

AbstractBeanFactoryPointcutAdvisor

public AbstractBeanFactoryPointcutAdvisor()
Method Detail

setAdviceBeanName

public void setAdviceBeanName(String adviceBeanName)
Specify the name of the advice bean that this advisor should refer to.

An instance of the specified bean will be obtained on first access of this advisor's advice. This advisor will only ever obtain at most one single instance of the advice bean, caching the instance for the lifetime of the advisor.

See Also:
getAdvice()

getAdviceBeanName

public String getAdviceBeanName()
Return the name of the advice bean that this advisor refers to, if any.


setBeanFactory

public void setBeanFactory(BeanFactory beanFactory)
Description copied from interface: BeanFactoryAware
Callback that supplies the owning factory to a bean instance.

Invoked after the population of normal bean properties but before an initialization callback such as InitializingBean.afterPropertiesSet() or a custom init-method.

Specified by:
setBeanFactory in interface BeanFactoryAware
Parameters:
beanFactory - owning BeanFactory (never null). The bean can immediately call methods on the factory.
See Also:
BeanInitializationException

getAdvice

public Advice getAdvice()
Description copied from interface: Advisor
Return the advice part of this aspect. An advice may be an interceptor, a before advice, a throws advice, etc.

Specified by:
getAdvice in interface Advisor
Returns:
the advice that should apply if the pointcut matches
See Also:
MethodInterceptor, BeforeAdvice, ThrowsAdvice, AfterReturningAdvice

toString

public String toString()
Overrides:
toString in class Object