Spring07----Bean的作用域

网友投稿 703 2022-11-17

Spring07----Bean的作用域

Spring07----Bean的作用域

什么是作用域呢?即“scope”,在面向对象程序设计中一般指对象或变量之间的可见范围。而在Spring容器 中是指其创建的Bean对象相对于其他Bean对象的请求可见范围。Spring提供“singleton”和“prototype”两种基本作用域,另外提供“request”、“session”、“global session”三种web作用域;Spring还允许用户定制自己的作用域。下面只介绍基本的作用域

一. singleton

标记为拥有singleton scope的对象定义,在Spring的IoC容器中只存在一个实例,所有对该对象的引 用将共享这个实例。该实例从容器启动,并因为第一次被请求而初始化之后,将一直存活到容器退出, 也就是说,它与IoC容器“几乎”拥有相同的“寿命”。

需要注意的一点是,不要因为名字的原因而与GoF①所提出的Singleton模式相混淆,二者的语意是 不同的: 标记为singleton的bean是由容器来保证这种类型的bean在同一个容器中只存在一个共享实例; 而Singleton模式则是保证在同一个Classloader中只存在一个这种类型的实例。

可以从两个方面来看待singleton的bean所具有的特性:

1)对象实例数量。singleton类型的bean定义,在一个容器中只存在一个共享实例,所有对该类型

bean的依赖都引用这一单一实例。这就好像每个幼儿园都会有一个滑梯一样,这个幼儿园的小 朋友共同使用这一个滑梯。而对于该幼儿园容器来说,滑梯实际上就是一个singleton的bean。

2)对象存活时间。singleton类型bean定义,从容器启动,到它第一次被请求而实例化开始,只要 容器不销毁或者退出,该类型bean的单一实例就会一直存活

通常情况下,如果你不指定bean的scope,singleton便是容器默认的scope

二. prototype

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Codeforces Round #675 (Div. 2) A~D
下一篇:2021杭电多校第八场 HDU7063-Square Card(求两圆相交面积)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~