bean元素scope属性配置Bean的作用域

为什么spring中配置bean是不允许用singleton属性?

版本问题,应该是属性scope=“singleton”或者scope=“prototype” spring新版本中取消了singleton="true/false"的设置,增加了更多选择行。

bean元素scope属性配置Bean的作用域

元素scope属性,在spring规范中scope属性有五个取值:

1. scope="singleton" 单例,在Spring IoC容器中仅存在一个Bean实例(默认的scope)

默认情况下:托管给spring默认在spring容器中只有一个Bean实例对象.

2. scope="prototype" 多例,每次从容器中调用Bean时,都返回一个新的实例,即每次调用getBean()时,相当于执行new XxxBean()

3. scope="request" 用于web开发,该作用域仅适用于WebApplicationContext环境.

每次HTTP请求都会创建一个新的Bean,将Bean放入request范围,request.setAttribute("xxx"),在同一个request 获得同一个Bean

4. scope="session" 用于web开发, 该作用域仅适用于WebApplicationContext环境.

同一个HTTP Session 共享一个Bean,不同Session使用不同Bean,将Bean 放入Session范围

5. scope="globalSession"该作用域仅适用于WebApplicationContext环境.

一般用于Porlet应用环境 , 分布式系统存在全局session概念,如果不是porlet环境,globalSession 等同于Session . Porlet是Servlet的一个升级,Porlet主要用于分布式系统.

在开发中主要使用 scope="singleton"、 scope="prototype"

你可能感兴趣的:(SSH)