public class CustomScopeConfigurer extends Object implements BeanFactoryPostProcessor, BeanClassLoaderAware, Ordered
BeanFactoryPostProcessor
implementation that registers
custom Scope(s)
with the containing ConfigurableBeanFactory
.
Will register all of the supplied scopes
with the ConfigurableListableBeanFactory
that is passed to the
postProcessBeanFactory(ConfigurableListableBeanFactory)
method.
This class allows for declarative registration of custom scopes.
Alternatively, consider implementing a custom BeanFactoryPostProcessor
that calls ConfigurableBeanFactory.registerScope(java.lang.String, org.springframework.beans.factory.config.Scope)
programmatically.
ConfigurableBeanFactory.registerScope(java.lang.String, org.springframework.beans.factory.config.Scope)
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
Constructor and Description |
---|
CustomScopeConfigurer() |
Modifier and Type | Method and Description |
---|---|
void |
addScope(String scopeName,
Scope scope)
Add the given scope to this configurer's map of scopes.
|
int |
getOrder()
Return the order value of this object, with a
higher value meaning greater in terms of sorting.
|
void |
postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
Modify the application context's internal bean factory after its standard
initialization.
|
void |
setBeanClassLoader(ClassLoader beanClassLoader)
Callback that supplies the bean
class loader to
a bean instance. |
void |
setOrder(int order) |
void |
setScopes(Map<String,Object> scopes)
Specify the custom scopes that are to be registered.
|
public void setScopes(Map<String,Object> scopes)
The keys indicate the scope names (of type String); each value
is expected to be the corresponding custom Scope
instance
or class name.
public void addScope(String scopeName, Scope scope)
scopeName
- the name of the scopescope
- the scope implementationpublic void setOrder(int order)
public int getOrder()
Ordered
Normally starting with 0, with Integer.MAX_VALUE
indicating the greatest value. Same order values will result
in arbitrary positions for the affected objects.
Higher values can be interpreted as lower priority. As a consequence, the object with the lowest value has highest priority (somewhat analogous to Servlet "load-on-startup" values).
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
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()
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException
BeanFactoryPostProcessor
postProcessBeanFactory
in interface BeanFactoryPostProcessor
beanFactory
- the bean factory used by the application contextBeansException
- in case of errors