Class CustomScopeConfigurer

  extended by org.springframework.beans.factory.config.CustomScopeConfigurer
All Implemented Interfaces:
Aware, BeanClassLoaderAware, BeanFactoryPostProcessor, Ordered

public class CustomScopeConfigurer
extends java.lang.Object
implements BeanFactoryPostProcessor, BeanClassLoaderAware, Ordered

Simple 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.

Juergen Hoeller, Rick Evans
See Also:
ConfigurableBeanFactory.registerScope(java.lang.String, org.springframework.beans.factory.config.Scope)

Field Summary
private  java.lang.ClassLoader beanClassLoader
private  int order
private  java.util.Map<java.lang.String,java.lang.Object> scopes
Fields inherited from interface org.springframework.core.Ordered
Constructor Summary
Method Summary
 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(java.lang.ClassLoader beanClassLoader)
          Callback that supplies the bean class loader to a bean instance.
 void setOrder(int order)
 void setScopes(java.util.Map<java.lang.String,java.lang.Object> scopes)
          Specify the custom scopes that are to be registered.
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail


private java.util.Map<java.lang.String,java.lang.Object> scopes


private int order


private java.lang.ClassLoader beanClassLoader
Constructor Detail


public CustomScopeConfigurer()
Method Detail


public void setScopes(java.util.Map<java.lang.String,java.lang.Object> scopes)
Specify the custom scopes that are to be registered.

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 setOrder(int order)


public int getOrder()
Description copied from interface: Ordered
Return the order value of this object, with a higher value meaning greater in terms of sorting.

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).

Specified by:
getOrder in interface Ordered
the order value


public void setBeanClassLoader(java.lang.ClassLoader beanClassLoader)
Description copied from interface: BeanClassLoaderAware
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.

Specified by:
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
Description copied from interface: BeanFactoryPostProcessor
Modify the application context's internal bean factory after its standard initialization. All bean definitions will have been loaded, but no beans will have been instantiated yet. This allows for overriding or adding properties even to eager-initializing beans.

Specified by:
postProcessBeanFactory in interface BeanFactoryPostProcessor
beanFactory - the bean factory used by the application context
BeansException - in case of errors