概述:主要根据以下作用域进行扩展,阐述现阶段我对spring作用域对概念,若理解错误或不到位,请多指教!!!

1.Singleton作用域

如图所示,在左侧定义了三个bean,他们的属性bean的值,都指向了右侧bean。
此时,若在singleton的作用域下,右侧的Bean只会会被创建一次,被注入到任何需要它的地方
2.prototype作用域

如图所示,在左侧定义了三个bean,他们的属性bean的值,都指向了右侧bean。
此时,若在prototype的作用域下,右侧的Bean只会被创建多次,每次spring上下文请求该Bean都会new一个新的实例
TIP:必需在spring Web的上下文环境才有如下作用域
3.Web环境作用域-request作用域
<bean id="testRequest" class="……" scope="request"/>
理解:每一次应用请求,spring都会帮我们实例化新的controller实例
4.Web环境作用域-session作用域
<bean id="testSession" class="……" scope="session"/>
理解:只要用户的session不变,spring会帮我们返回同一个实例,但是如果我们打开新的浏览器,或者session改变就会返回一个新的实例
5.Web环境作用域-application作用域
<bean id="testAppliction" class="……" scope="appliction"/>
理解:只要ServletContext的上下环境没有发生改变,就不会发生变化。
本文深入解析Spring框架中各种作用域的特性和应用场景,包括Singleton、Prototype、Request、Session及Application等,帮助读者理解如何在不同场景下选择合适的作用域。
558

被折叠的 条评论
为什么被折叠?



