Top Description Fields Constructors Methods
org.springframework.beans.factory.serviceloader

public abstract Class AbstractServiceLoaderBasedFactoryBean

extends AbstractFactoryBean<Object>
implements BeanClassLoaderAware
Class Inheritance
All Implemented Interfaces
org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.Aware
Known Direct Subclasses
org.springframework.beans.factory.serviceloader.ServiceFactoryBean, org.springframework.beans.factory.serviceloader.ServiceListFactoryBean, org.springframework.beans.factory.serviceloader.ServiceLoaderFactoryBean
Imports
java.util.ServiceLoader, org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.config.AbstractFactoryBean, org.springframework.lang.Nullable, org.springframework.util.Assert, .ClassUtils

Abstract base class for FactoryBeans operating on the JDK 1.6 java.util.ServiceLoader facility.
Author
Juergen Hoeller
Since
2.5
See Also
java.util.ServiceLoader

Field Summary

Modifier and TypeField and Description
private ClassLoader
private Class<?>
Inherited from org.springframework.beans.factory.config.AbstractFactoryBean:
logger

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
protected Object
protected abstract Object

Returns:

the object to expose
getObjectToExpose
(ServiceLoader<?>
the ServiceLoader for the configured service class
serviceLoader
)

Determine the actual object to expose for the given ServiceLoader.

public Class<?>
getServiceType()

Return the desired service type.

public void
public void
setServiceType(Class<?> serviceType)

Specify the desired service type (typically the service's public API).

Inherited from org.springframework.beans.factory.config.AbstractFactoryBean:
afterPropertiesSetdestroydestroyInstancegetBeanFactorygetBeanTypeConvertergetEarlySingletonInterfacesgetObjectgetObjectTypeisSingletonsetBeanFactorysetSingleton

Field Detail

beanClassLoaderback to summary
private ClassLoader beanClassLoader

Hides org.springframework.beans.factory.config.AbstractFactoryBean.beanClassLoader.

Annotations
@Nullable
serviceTypeback to summary
private Class<?> serviceType
Annotations
@Nullable

Constructor Detail

AbstractServiceLoaderBasedFactoryBeanback to summary
public AbstractServiceLoaderBasedFactoryBean()

Method Detail

createInstanceback to summary
protected Object createInstance()

Implements abstract org.springframework.beans.factory.config.AbstractFactoryBean.createInstance.

Delegates to getObjectToExpose(java.util.ServiceLoader).

Returns:Object

the object to expose

Annotations
@Override
getObjectToExposeback to summary
protected abstract Object getObjectToExpose(ServiceLoader<?> serviceLoader)

Determine the actual object to expose for the given ServiceLoader.

Left to concrete subclasses.

Parameters
serviceLoader:ServiceLoader<?>

the ServiceLoader for the configured service class

Returns:Object

the object to expose

getServiceTypeback to summary
public Class<?> getServiceType()

Return the desired service type.

Annotations
@Nullable
setBeanClassLoaderback to summary
public void setBeanClassLoader(ClassLoader beanClassLoader)

Overrides org.springframework.beans.factory.config.AbstractFactoryBean.setBeanClassLoader.

Implements org.springframework.beans.factory.BeanClassLoaderAware.setBeanClassLoader.

Doc from org.springframework.beans.factory.BeanClassLoaderAware.setBeanClassLoader.

Callback that supplies the bean class 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.

Parameters
beanClassLoader:ClassLoader

the owning class loader

Annotations
@Override
setServiceTypeback to summary
public void setServiceType(Class<?> serviceType)

Specify the desired service type (typically the service's public API).