Package org.springframework.aop.target.dynamic

# Class BeanFactoryRefreshableTargetSource

java.lang.Object
org.springframework.aop.target.dynamic.AbstractRefreshableTargetSource
org.springframework.aop.target.dynamic.BeanFactoryRefreshableTargetSource

All Implemented Interfaces:
  `Refreshable`, `TargetClassAware`, `TargetSource`

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

Constructors
Constructor
Description
`BeanFactoryRefreshableTargetSource(org.springframework.beans.factory.BeanFactory beanFactory, String beanName)`
Create a new BeanFactoryRefreshableTargetSource for the given bean factory and bean name.

## Method Summary

Modifier and Type
Method
Description
`protected final Object`
`freshTarget()`
Retrieve a fresh target object.
`protected Object`
`obtainFreshBean(org.springframework.beans.factory.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, refresh, requiresRefresh, setRefreshCheckDelay`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.springframework.aop.TargetSource

`isStatic, releaseTarget`

## Constructor Details

### BeanFactoryRefreshableTargetSource

public BeanFactoryRefreshableTargetSource(org.springframework.beans.factory.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 Details

### 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(org.springframework.beans.factory.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)`