从几个方面来回答:
首先,Spring框架里面的IOC容器,可以非常方便的去帮助我们管理应用里面的Bean对象实例。
我们只需要按照Spring里面提供的xml或者注解等方式去告诉IOC容器,哪些Bean需要被IOC容器管理就行了。
其次呢,既然是Bean对象实例的管理,那意味着这些实例,是存在生命周期,也就是所谓的作用域。
理论上来说,常规的生命周期只有两种:
1、singleton,也就是单例,意味着在整个Spring容器中只会存在一个Bean实例。
2、prototype,翻译成原型,意味着每次从IOC容器去获取指定Bean的时候,都会返回一个新的实例对象。
但是在基于Spring框架下的Web应用里面,增加了一个会话纬度来控制Bean的生命周期,主要有三个选择:
1、request,针对每一次http请求,都会创建一个新的Bean
2、session,以sesssion会话为纬度,同一个session共享同一个Bean实例,不同的session产生不同的Bean实例
3、globalSession,针对全局session纬度,共享同一个Bean实例