spring Bean的作用域:
作用域限定了spring的作用范围,在spring的配置文件定义bean时,通过scope的配置项,合理的定义bean的作用域,也就是scope的几大属性。
1 .singleton
使用该属性定义Bean的时候,ioc容器创建生成一个Bean的实例,每一次返回的都是同样的一个Bean;
spring bean 默认配置的是singleton ,也就是说spring Bean在默认情况下是一个单例的Bean
2.pototype
使用该属性定义bean的时候,ioc容器可以创建多个Bean的实例,每一次返回的都是新的实例
3.request
该属性只对http起作用,使用该属性配置一个Bean的时候,每一次http请求都会创建一个新的实例,适用于WebApplicationContext;
4.session
该属性仅用Http Session,同一个session共享一个Bean的实例,不同的session使用不同的实例
5.global session
该属性仅对Http session起作用,不同于session作用域的地方就是所有的session共享同一个Bean实例
小节:
Spring IOC容器创建一个Bean实例时,可以为Bean指定实例的作用域,作用域包括singleton(单例模式)、prototype(原型模式)、request(HTTP请求)、session(会话)、global-session(全局会话)。
-------------Bean的生命周期----------------------
单例对象:生命周期
对象出生:当应用加载,创建容器时,对象就被创建了
对象活着:只要容器在,对象就一直活着;
对象死亡:当容器销毁时,对象就死亡了;
多例对象:生命周期
对象出生:当使用对象时,创建新的对象实例(Bean);
对象活着:只要对象在使用中就一直活着;
对象死亡:当对象长时间不使用,Java中GC就会自动回收;