Bean的作用域
默认的作用域
所有的Spring Bean默认都是单例。我们可以测试一下:
从输出结果我们可以看到通过3次getBean得到的都是同一个实例。
作用域的选项
我们可以通过配置Bean中的scope属性来修改Bean的作用域,有以下5种选项:
1. singleton:单例,默认的作用域,在每一个IOC容器中,一个Bean的定义只有一个对象实例。
2. prototype:允许Bean的定义可以被实例化多次。每次调用都创建一个新的实例。
3. request:在一次http请求中,每个Bean对应一个实例。仅在基于web的Spring上下文中才有效。
4. session:在一个HTTP Session中,每个Bean对应一个实例。仅在基于web的Spring上下文中才有效。
5. global-session:在一个全局的HTTP Session中,每个Bean对应一个实例。仅在Portlet上下文中才有效。