【Spring】Bean的作用域

Bean的作用域



默认的作用域

所有的Spring Bean默认都是单例。我们可以测试一下:
【Spring】Bean的作用域
从输出结果我们可以看到通过3次getBean得到的都是同一个实例。

作用域的选项

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