在Spring 2.0以后的版本中,Spring的bean作用域机制是可以自定义扩展的。这意味着,我们不仅可以使用Spring提供的预定义bean作用域; 还可以定义自己的作用域,甚至重新定义现有的作用域(但是不提倡这么做,而且不能覆盖内置的singleton和prototype作用域)
作用域由接口org.springframework.beans.factory.config.Scope定义。要将自定义作用域集成到Spring容器中,需要实现该接口。
public class ThreadScop implements Scope {
private final ThreadLocal
实现一个或多个自定义Scope后,接下来就是如何让Spring容器识别新作用域。
实现BeanFactoryPostProcessorpublic class RegisterCustScope implements BeanFactoryPostProcessor {
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory configurableListableBeanFactory) throws BeansException {
configurableListableBeanFactory.registerScope("therad",new ThreadScop());
}
}
xml配置自定义Bean作用域:



