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.6
ServiceLoader
facility.- Since:
- 2.5
- Author:
- Juergen Hoeller
- See Also:
-
Field Summary
Fields inherited from class org.springframework.beans.factory.config.AbstractFactoryBean
logger
Fields inherited from interface org.springframework.beans.factory.FactoryBean
OBJECT_TYPE_ATTRIBUTE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected Object
Delegates togetObjectToExpose(java.util.ServiceLoader)
.protected abstract Object
getObjectToExpose
(ServiceLoader<?> serviceLoader) Determine the actual object to expose for the given ServiceLoader.Class<?>
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 Details
-
AbstractServiceLoaderBasedFactoryBean
public AbstractServiceLoaderBasedFactoryBean()
-
-
Method Details
-
setServiceType
Specify the desired service type (typically the service's public API). -
getServiceType
Return the desired service type. -
setBeanClassLoader
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
-
createInstance
Delegates togetObjectToExpose(java.util.ServiceLoader)
.- Specified by:
createInstance
in classAbstractFactoryBean<Object>
- Returns:
- the object to expose
- See Also:
-
getObjectToExpose
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
-