spring bean的生命周期和作用范围
单例对象:scope = “singleton”
作用范围:一个应用只有一个对象的实例。他的作用范围就是整个应用。
生命周期
出生:当容器创建的时候,bean的实例就出生了
ApplicationContext context =
new ClassPathXmlApplicationContext("beans.xml");
活着:当容器还在的时候,bean 的实例就一直存在。
死亡:当容器销毁的时候,bean 的实例就死亡。
总结:单例对象的生命周期和Spring容器一样。
多例对象:scope = “prototype”
作用范围:每次得到对象的时候,都会重新创建实例。
生命周期
出生:当我们要使用改类的实例的时候,Spring框架会为我们创建该对象。
User user1 =(User) context.getBean("user");
活着:当我们要使用它的时候,就一直存在。
死亡:当对象长时间不使用的时候,且没有别的对象引用它的时候,JVM中的GC就将它回收掉了。
scope属性的其他值:
1.singleton
2.prototype
3.request:仅对http请求产生作用。其实也是多例,每次的请求都会新创建一个实例。
4.session:仅对http session请求产生作用。同一个会话,中bean的实例是单例的,多个会话的bean的实例是多例。
5.global-session:仅对http session请求产生作用