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.6ServiceLoader
facility.- 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 Object
createInstance()
Delegates togetObjectToExpose(java.util.ServiceLoader)
.protected abstract Object
getObjectToExpose(ServiceLoader<?> serviceLoader)
Determine the actual object to expose for the given ServiceLoader.Class<?>
getServiceType()
Return the desired service type.void
setBeanClassLoader(ClassLoader beanClassLoader)
Callback that supplies the beanclass loader
to a bean instance.void
setServiceType(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:BeanClassLoaderAware
Callback that supplies the beanclass loader
to a bean instance.Invoked after the population of normal bean properties but before an initialization callback such as
InitializingBean's
InitializingBean.afterPropertiesSet()
method or a custom init-method.- Specified by:
setBeanClassLoader
in interfaceBeanClassLoaderAware
- Overrides:
setBeanClassLoader
in classAbstractFactoryBean<Object>
- Parameters:
beanClassLoader
- the owning class loader; may benull
in which case a defaultClassLoader
must be used, for example theClassLoader
obtained viaClassUtils.getDefaultClassLoader()
createInstance
protected Object createInstance()
Delegates togetObjectToExpose(java.util.ServiceLoader)
.- Specified by:
createInstance
in 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