• Spring 学习笔记 Bean的作用域


    在配置文件中定义Bean时,用户不但可以配置Bean的属性值以及相互之间的依赖关系,还可以定义Bean的作用域。作用域将对Bean的生命周期和创建方式产生影响。在低版本的Spring中,仅有两个作用域singleton和prototype,在spring 2.0中,针对WebApplicationContext新添了3个新的作用域。下面列出了Spring 2.0支持的所有作用域类型。

    Bean的作用域类型

    singleton :在Spring IOC容器中仅存在一个Bean实例,Bean以单实例的方式存在;
    prototype :每次从容器中调用Bean时,都返回一个新的实例,即每次调用getBean()时,相当于执行new XxxBean()的操作;
    request每次HTTP请求都会创建一个新的Bean。该作用域仅适用于WebApplicationContext环境.
    session同一个HTTP  Session共享一个Bean,不同于HTTP Session使用不同的Bean。该作用域仅使用于WebApplicationContext环境.
    globalSession:同一个全局Session贡献一个Bean,一般用于Portlet应用环境,该作用域仅适用于WebApplicationContext环境.

        在低版本的Spring 中,由于只有两个Bean作用域,所以采用singletion="true|false"的配置方式,Spring为了向后兼容,依旧支持这种配置方式。不过Spring推荐采用新的配置方式:scope="<作用域类型>"。除了以上5中预定义的Bean作用域外,Spring还允许用户自定义Bean的作用域,可以通过org.springframework.beans.factory.config.Scope接口定义新的作用域,再通过org.springframwwork.beans.factory.config.CustomScopeConfigurer这个BeanFactoryPostProcessor注册定义的Bean作用域。不过我们认为在一般的应用中,Spring所提供的作用域已经能够满足应用的要求,用户很少需要自定义新的作用域。


  • 相关阅读:
    day22 Python shelve模块
    day22 Python pickle模块
    day22 Python sys模块
    day22 Python os模块
    day22 Python random模块
    day22 Python 时间模块
    day21 Python 实现的深度优先搜索实现迷宫算法
    day21 Go 实现的深度优先搜索实现迷宫算法
    杂篇
    杂篇
  • 原文地址:https://www.cnblogs.com/wuyida/p/6300368.html
Copyright © 2020-2023  润新知