Class AbstractServiceLoaderBasedFactoryBean
- java.lang.Object
- org.springframework.beans.factory.config.AbstractFactoryBean<Object>
- org.springframework.beans.factory.serviceloader.AbstractServiceLoaderBasedFactoryBean
- All Implemented Interfaces:
Aware,BeanClassLoaderAware,BeanFactoryAware,DisposableBean,FactoryBean<Object>,InitializingBean
- Direct Known Subclasses:
ServiceFactoryBean,ServiceListFactoryBean,ServiceLoaderFactoryBean
public abstract class AbstractServiceLoaderBasedFactoryBean extends AbstractFactoryBean<Object> implements BeanClassLoaderAware
Abstract base class for FactoryBeans operating on the JDK 1.6ServiceLoaderfacility.- Since:
- 2.5
- Author:
- Juergen Hoeller
- See Also:
ServiceLoader
Field Summary
Fields inherited from class org.springframework.beans.factory.config.AbstractFactoryBean
logger
Constructor Summary
Constructors Constructor Description AbstractServiceLoaderBasedFactoryBean()
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected ObjectcreateInstance()Delegates togetObjectToExpose(java.util.ServiceLoader).protected abstract ObjectgetObjectToExpose(ServiceLoader<?> serviceLoader)Determine the actual object to expose for the given ServiceLoader.Class<?>getServiceType()Return the desired service type.voidsetBeanClassLoader(ClassLoader beanClassLoader)Callback that supplies the beanclass loaderto a bean instance.voidsetServiceType(Class<?> serviceType)Specify the desired service type (typically the service's public API).Methods inherited from class org.springframework.beans.factory.config.AbstractFactoryBean
afterPropertiesSet, destroy, destroyInstance, getBeanFactory, getBeanTypeConverter, getEarlySingletonInterfaces, getObject, getObjectType, isSingleton, setBeanFactory, setSingleton
Constructor Detail
AbstractServiceLoaderBasedFactoryBean
public AbstractServiceLoaderBasedFactoryBean()
Method Detail
setServiceType
public void setServiceType(Class<?> serviceType)
Specify the desired service type (typically the service's public API).
getServiceType
public Class<?> getServiceType()
Return the desired service type.
setBeanClassLoader
public void setBeanClassLoader(ClassLoader beanClassLoader)
Description copied from interface:BeanClassLoaderAwareCallback that supplies the beanclass loaderto a bean instance.Invoked after the population of normal bean properties but before an initialization callback such as
InitializingBean'sInitializingBean.afterPropertiesSet()method or a custom init-method.- Specified by:
setBeanClassLoaderin interfaceBeanClassLoaderAware- Overrides:
setBeanClassLoaderin classAbstractFactoryBean<Object>- Parameters:
beanClassLoader- the owning class loader; may benullin which case a defaultClassLoadermust be used, for example theClassLoaderobtained viaClassUtils.getDefaultClassLoader()
createInstance
protected Object createInstance()
Delegates togetObjectToExpose(java.util.ServiceLoader).- Specified by:
createInstancein classAbstractFactoryBean<Object>- Returns:
- the object to expose
- See Also:
AbstractFactoryBean.getObject()
getObjectToExpose
protected abstract Object getObjectToExpose(ServiceLoader<?> serviceLoader)
Determine the actual object to expose for the given ServiceLoader.Left to concrete subclasses.
- Parameters:
serviceLoader- the ServiceLoader for the configured service class- Returns:
- the object to expose