Spring Bean 的作用域之间有什么区别?

迷失技术de小猪 Spring 136

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 作用域效果相同。

更多内容请参考 : Spring Bean Scopes。

回复

我来回复
  • 暂无回复内容

免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部