有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准
https://blog.zysicyj.top
全网最细面试题手册,支持艾宾浩斯记忆法。这是一份最全面、最详细、最高质量的 java面试题,不建议你死记硬背,只要每天复习一遍,有个大概印象就行了。 https://store.amazingmemo.com/chapterDetail/1685324709017001`
Bean 的作用域(Scope)
在 Spring 框架中,当定义一个Bean时,你需要定义该Bean的作用域。以下是Spring支持的几种作用域类型:
单例(Singleton)
单例作用域是Spring的默认作用域。如果一个Bean的定义为单例作用域,那么Spring IoC容器每次被请求时都会返回相同的Bean实例。
- 当前容器中只会存在一个共享的Bean实例
- 所有对该Bean的请求都会返回同一对象的引用
原型(Prototype)
原型作用域配置后,每次请求Bean时都会创建一个新实例。
- 每次请求都会创建一个新的Bean实例
- 适用于所有状态都是非共享的Bean
请求(Request)
请求作用域针对每一次HTTP请求,都会产生一个新的Bean,仅在当前HTTP request内有效。
- 该作用域仅在Web程序中适用,对于每个HTTP请求都会创建一个新的Bean
- 和Singleton、Prototype不同,在请求结束前,都是相同的Bean实例
会话(Session)
会话作用域下的Bean以特定于用户的HTTP Session为生命周期。与"请求"作用域不同,同一个HTTP Session共享同一个Bean实例。
- 限定在HTTP Session范围内的Bean
- 同一Session共享Bean
全局会话(Global-Session)
全局会话作用域主要用于Portlet应用环境,如果你在Portlet容器中使用Spring,Bean定义为全局会话作用域,那么该Bean的生命周期将限定在全局Portlet Session中。
- 该作用域仅适用于Portlet环境
- 同一个全局Portlet Session中,共享一个Bean实例
总结一下,Bean的作用域决定了Bean的生命周期,以及如何共享。正确选择适合的作用域,将有助于优化Spring应用程序的性能和管理。
本文是原创文章,采用 CC BY-NC-SA 4.0 协议,完整转载请注明来自 小朱
评论
隐私政策
0/500
滚动到此处加载评论...


