解释Spring支持的几种bean的作用域
spring容器中的bean可以分为五个范围:
1.singleton:单例模式,默认每个人器中只有一个bean的实例,单里的模式有BeanFactory自身来维护。在创建起容器时就自动创建一个bean对象,每次获取的都次最初的bean对象。且singleton作用域是Spring中的缺省作用域
2.prototype:原型模式,为每一个bean提供一个实例,且一个bean可以有多个实例。在创建时没有实例化,在获取bean对象时才会被创建,且每次获取到的bean对象都不同
3.request:HTTP请求,为每一个网络请求创建一个实例,每一个HTTP请求的bean实例不同,在HTTP请求完成后,bean会失效并由垃圾回收器回收(销毁)。
4.session:会话,和request范围类似,确保每个session中有一个bean的实例,单每个bean可有多个session,在session过期后,bean也会被销毁。
5.global-session:全局会话,全局作用域,global-session和Portlet应用相关。当你的应用部署在Portlet容器中工作时,它包含很多portlet(被共享)。如果你想要声明让所有的portlet共用全局的存储变量的话,那么这全局变量需要存储在global-session中(被限定在全局portlet Session的生命周期范围内),且只在使用protlet context的时候有用。全局作用域与Servlet中的session作用域效果相同。
#request,session和globalSession三种作用域斗仅适用于web的Spring ApplicationContext环境中使用