spring bean的作用域之间有啥区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring bean的作用域之间有啥区别相关的知识,希望对你有一定的参考价值。

常用的spring bean的作用于scope,单例、原型、session、request
单例和原型区别就是,单例在整个springapplicationcontext里面只有这一个,其他任何bean在调用这个bean的时候都是这一个;原型就是每次调用或者说装配的时候,都会新生成一个bean。
session和request的区别,每个session里面用的都是一个bean,每个request里面都是用一个bean
参考技术A 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中。

以上是关于spring bean的作用域之间有啥区别的主要内容,如果未能解决你的问题,请参考以下文章

说说 Spring Bean 的作用域

spring中bean的作用域属性singleton与prototype的区别

Spring---bean的作用域

Spring07----Bean的作用域

Spring 中 ApplicationContext 和 BeanFactory 的区别,以及 Spring bean 作用域

Spring初学之bean之间的关系和bean的作用域