Spring 容器中的 bean 可以分为 5 个范围。
1.singleton
:这种 bean 范围是默认的,这种范围确保不管接受到多少个请求,每个容器中只有一个 bean 的实例,单例的模式由 bean factory 自身来维护。
2.prototype
:原形范围与单例范围相反,为每一个 bean 请求提供一个实例。
3.request
:在请求 bean 范围内会每一个来自客户端的网络请求创建一个实例,在请求完成以后,bean 会失效并被垃圾回收器回收。
4.Session
:与请求范围类似,确保每个 session 中有一个 bean 的实例,在 session 过期后,bean 会随之失效。
5.global-session
:global-session 和 Portlet 应用相关。当你的应用部署在 Portlet 容器中工作时,它包含很多portlet。如果你想要声明让所有的 portlet 共用全局的存储变量的话,那么这全局变量需要存储在 global-session 中。全局作用域与 Servlet 中的 session 作用域效果相同。