spring框架bean的生命范围(scope)

中有一个属性,叫scope,就是设定生命范围的。spring框架bean的生命范围(scope)_第1张图片

Scope的作用:

可以用scope属性来限定bean的生命范围(即是在什么范围内拿到的bean是相同的)

scope属性经常使用的值有一下几种:

singleton:在整个应用的里面,拿取bean,都是同一个bean的引用(类似于单例模式);singleton也是默人的scope;

prototype:(原型模式)每次拿一个对象,都是对"原型"对象的一次拷贝;每拿一次就是通过拷贝原型来创建一个新的对象;

注意:如果bean的scope是prototype,spring不会自动的调用destory-method;

request :
 在一次HTTP请求中,一个bean定义对应一个实例;即每次HTTP请求将会创建一个新的bean实例, 它们依据某个bean定义创建而成。该作用域仅在基于web的Spring ApplicationContext情形下有效。

session: 
 在一个HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情形下有效。
 
global session :
 在一个全局的HTTP Session中,一个bean定义对应一个实例。典型情况下,仅在使用portlet context的时候有效。该作用域仅在基于web的Spring ApplicationContext情形下有效。

 

最常用的是singleton和prototype ,默认是singleton。根据开发的需要选择不停的scope属性值

你可能感兴趣的:(框架学习)