public abstract class AbstractServiceLoaderBasedFactoryBean extends AbstractFactoryBean<Object> implements BeanClassLoaderAware
ServiceLoader
facility.ServiceLoader
logger
OBJECT_TYPE_ATTRIBUTE
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(@Nullable Class<?> serviceType)
public void setBeanClassLoader(@Nullable 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<Object>
beanClassLoader
- the owning class loaderprotected Object createInstance()
getObjectToExpose(java.util.ServiceLoader)
.createInstance
in class AbstractFactoryBean<Object>
AbstractFactoryBean.getObject()
protected abstract Object getObjectToExpose(ServiceLoader<?> serviceLoader)
Left to concrete subclasses.
serviceLoader
- the ServiceLoader for the configured service class