org.springframework.aop.target.dynamic
Class BeanFactoryRefreshableTargetSource

java.lang.Object
  extended by org.springframework.aop.target.dynamic.AbstractRefreshableTargetSource
      extended by org.springframework.aop.target.dynamic.BeanFactoryRefreshableTargetSource
All Implemented Interfaces:
Refreshable, TargetClassAware, TargetSource
Direct Known Subclasses:
RefreshableScriptTargetSource

public class BeanFactoryRefreshableTargetSource
extends AbstractRefreshableTargetSource

Refreshable TargetSource that fetches fresh target beans from a BeanFactory.

Can be subclassed to override requiresRefresh() to suppress unnecessary refreshes. By default, a refresh will be performed every time the "refreshCheckDelay" has elapsed.

Since:
2.0
Author:
Rob Harrop, Rod Johnson, Juergen Hoeller, Mark Fisher
See Also:
BeanFactory, AbstractRefreshableTargetSource.requiresRefresh(), AbstractRefreshableTargetSource.setRefreshCheckDelay(long)

Field Summary
 
Fields inherited from class org.springframework.aop.target.dynamic.AbstractRefreshableTargetSource
logger, targetObject
 
Constructor Summary
BeanFactoryRefreshableTargetSource(BeanFactory beanFactory, String beanName)
          Create a new BeanFactoryRefreshableTargetSource for the given bean factory and bean name.
 
Method Summary
protected  Object freshTarget()
          Retrieve a fresh target object.
protected  Object obtainFreshBean(BeanFactory beanFactory, String beanName)
          A template method that subclasses may override to provide a fresh target object for the given bean factory and bean name.
 
Methods inherited from class org.springframework.aop.target.dynamic.AbstractRefreshableTargetSource
getLastRefreshTime, getRefreshCount, getTarget, getTargetClass, isStatic, refresh, releaseTarget, requiresRefresh, setRefreshCheckDelay
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BeanFactoryRefreshableTargetSource

public BeanFactoryRefreshableTargetSource(BeanFactory beanFactory,
                                          String beanName)
Create a new BeanFactoryRefreshableTargetSource for the given bean factory and bean name.

Note that the passed-in BeanFactory should have an appropriate bean definition set up for the given bean name.

Parameters:
beanFactory - the BeanFactory to fetch beans from
beanName - the name of the target bean
Method Detail

freshTarget

protected final Object freshTarget()
Retrieve a fresh target object.

Specified by:
freshTarget in class AbstractRefreshableTargetSource
Returns:
the fresh target object

obtainFreshBean

protected Object obtainFreshBean(BeanFactory beanFactory,
                                 String beanName)
A template method that subclasses may override to provide a fresh target object for the given bean factory and bean name.

This default implementation fetches a new target bean instance from the bean factory.

See Also:
BeanFactory.getBean(java.lang.String)