Bean的作用域会对Bean的生命周期和创建方式产生影响。
singleton:在spring中仅存在一个bean实例,bean以单例的方式存在
prototype:每次从容器中调用bean时,都会返回一个新的实例
request:每次Http请求都会创建一个新的bean。该作用领仅适用于WebApplicationContext环境
session:同一个Http Session共享一个bean,不同的http Session使用不同的bean。仅适用于WebApplicationContext环境。
HttpSession结束后,实例才会销毁。
golbalSession: 同一个全局Session共享一个bean,一般用于Portlet应用环境。仅适用于WebApplicationContext环境
示例如下:
xml配置:
<bean id="car" class="com.smart.Car" scope="prototype" />
注解配置:
注解配置的Bean和通过xml配置的Bean一样,默认作用范围都是singleton。
使用@Score注解指定Bean的作用范围
@Score("prototype") @Coponent public class Car { // ... }