public abstract class AbstractServiceLoaderBasedFactoryBean extends AbstractFactoryBean implements BeanClassLoaderAware
ServiceLoader
facility.ServiceLoader
logger
Constructor and Description |
---|
AbstractServiceLoaderBasedFactoryBean() |
Modifier and Type | Method and Description |
---|---|
protected Object |
createInstance()
Delegates to
getObjectToExpose(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 bean
class loader to
a bean instance. |
void |
setServiceType(Class serviceType)
Specify the desired service type (typically the service's public API).
|
afterPropertiesSet, destroy, destroyInstance, getBeanFactory, getBeanTypeConverter, getEarlySingletonInterfaces, getObject, getObjectType, isSingleton, setBeanFactory, setSingleton
public AbstractServiceLoaderBasedFactoryBean()
public void setServiceType(Class serviceType)
public Class getServiceType()
public void setBeanClassLoader(ClassLoader beanClassLoader)
BeanClassLoaderAware
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.
setBeanClassLoader
in interface BeanClassLoaderAware
setBeanClassLoader
in class AbstractFactoryBean
beanClassLoader
- the owning class loader; may be null
in
which case a default ClassLoader
must be used, for example
the ClassLoader
obtained via
ClassUtils.getDefaultClassLoader()
protected Object createInstance()
getObjectToExpose(java.util.ServiceLoader)
.createInstance
in class AbstractFactoryBean
AbstractFactoryBean.getObject()
protected abstract Object getObjectToExpose(ServiceLoader serviceLoader)
Left to concrete subclasses.
serviceLoader
- the ServiceLoader for the configured service class