Scope | 描述 |
---|---|
singleton | 一个Bean定义在整个Spring IoC容器中只会有一个实例 1.所有使用该bean的使用者都是在使用同一个bean实例 2.Spring bean的缺省作用域属性 |
prototype | 一个Bean定义会对应多个bean实例 1.使用者每次注入一个该作用域的bean,或者使用getBean()方法从容器获取该作用域的bean时得到都是一个新建实例 2.对于prototype bean,Spring容器不会调用它上面定义的destruction生命周期回调,客户代码需要自己处理这样的逻辑 |
request | 一个Bean定义在一个HTTP request的生命周期内会对应一个新建的bean实例 该作用域仅在Spring ApplicationContext是一个web ApplicationContext时才有效。 |
session | 一个Bean定义在一个HTTP session的生命周期内会对应一个新建的bean实例 该作用域仅在Spring ApplicationContext是一个web ApplicationContext时才有效。 |
globalSession | 一个Bean定义在一个global HTTP session的生命周期内会对应一个新建的bean实例 该作用域仅在Spring ApplicationContext是一个web Portlet ApplicationContext时才有效。 |
application | 一个Bean定义在一个ServletContext的生命周期内,也可以理解成在整个Web应用的生命周期内,对应一个新建的bean实例 该作用域仅在Spring ApplicationContext是一个web ApplicationContext时才有效。 |
websocket | 一个Bean定义在一个WebSocket的生命周期内,对应一个新建的bean实例 该作用域仅在Spring ApplicationContext是一个web ApplicationContext时才有效。 |
参考来源 :
7.5 Bean scopes