|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectorg.springframework.beans.factory.config.AbstractFactoryBean
org.springframework.beans.factory.config.ObjectFactoryCreatingFactoryBean
FactoryBean which returns a value which is an ObjectFactory that returns a bean from the BeanFactory. As such, this may be used to avoid having a client bean directly calling getBean() the BeanFactory to get a prototype bean out of the BeanFactory, a violation of inversion of control. Instead, with the use of this class, the client bean can be fed an ObjectFactory as a property which directly returns only the one target (usually prototype) bean.
A Sample config in an XML BeanFactory might look as follows:
<beans>
<!-- Prototype bean since we have state -->
<bean id="myService" class="a.b.c.MyService" singleton="false">
</bean>
<bean id="myServiceFactory" class="org.springframework.beans.factory.config.ObjectFactoryCreatingFactoryBean">
<property name="targetBeanName"><idref local="myService"/></property>
</bean>
<bean id="clientBean" class="a.b.c.MyClientBean">
<property name="myServiceFactory"><ref local="myServiceFactory"/></property>
</bean>
</beans>
ObjectFactory| Field Summary |
| Fields inherited from class org.springframework.beans.factory.config.AbstractFactoryBean |
logger |
| Constructor Summary | |
ObjectFactoryCreatingFactoryBean()
|
|
| Method Summary | |
protected Object |
createInstance()
Template method that subclasses must override to construct the object returned by this factory. |
Class |
getObjectType()
Return the type of object that this FactoryBean creates, or null if not known in advance. |
void |
setBeanFactory(BeanFactory beanFactory)
Callback that supplies the owning factory to a bean instance. |
void |
setTargetBeanName(String targetBeanName)
Set the name of the target bean. |
| Methods inherited from class org.springframework.beans.factory.config.AbstractFactoryBean |
afterPropertiesSet, getObject, isSingleton, setSingleton |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public ObjectFactoryCreatingFactoryBean()
| Method Detail |
public void setTargetBeanName(String targetBeanName)
public void setBeanFactory(BeanFactory beanFactory)
BeanFactoryAwareInvoked after population of normal bean properties but before an init callback like InitializingBean's afterPropertiesSet or a custom init-method.
setBeanFactory in interface BeanFactoryAwarebeanFactory - owning BeanFactory (may not be null).
The bean can immediately call methods on the factory.BeanInitializationExceptionprotected Object createInstance()
AbstractFactoryBeanInvoked on initialization of this FactoryBean in case of
a singleton; else, on each getObject() call.
createInstance in class AbstractFactoryBeanAbstractFactoryBean.getObject()public Class getObjectType()
FactoryBeanFor a singleton, this should try to avoid singleton creation as far as possible; it should rather estimate the type in advance. For prototypes, returning a meaningful type here is advisable too.
This method can be called before this FactoryBean has been fully initialized. It must not rely on state created during initialization; of course, it can still use such state if available.
NOTE: Autowiring will simply ignore FactoryBeans that return null here. Therefore it is highly recommended to implement this method properly, using the current state of the FactoryBean.
getObjectType in interface FactoryBeanListableBeanFactory.getBeansOfType(java.lang.Class)
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||