Spring Bean的生命周期

来源:互联网 发布:淘宝哪家手机店靠谱 编辑:程序博客网 时间:2024/04/29 18:47

bean的生命周期


1、创建应用上下文时会将xml文件中声明的bean全部实例化,放在内存容器中。可以使用lazy-init=true来设置当使用到该bean时才实例化bean

spring bean在  ApplicationContext context =  new ClassPathXmlApplicationContext("foo.xml");


2、spring将值和bean的引用注入进bean对应的属性中;


3、将bean的id传递给setBeanName(),

4、将beanFactory容器实例传入setBeanFactory(),

5、将应用上下文的引用传入setBeanApplicationContext()

6、bean准备就绪,可以被应用程序使用,将一直驻留在应用上下文中,直到该应用上下文被销毁


bean的初始化和销毁

为bean定义初始化和销毁操作,只需要使用init-method,destory-method参数来配置<bean>元素。

<bean id="audit" class="com.zju.shine.Audit" init-method="init" destory-method="destory" />


ApplicationContext容器会预装入所有的单例bean,确保需要的时候单例bean都已经准备好了,这样我们的应用就不需要等待这些单例bean被创建。

 如果在bean配置中指定bean的作用范围scope="prototype"(非单例模式,每次调用都产生一个新的bean),会将bean返回给调用者,调用者负责bean后续生命周期的管理,spring不再管理这些bean的生命周期。

如果作用范围为scope="singleton"(单例模式,每次调用的是同一个bean),则将bean放入Spring的Ioc容器的缓存池中,并将bean引用返回给调用者,Spring继续对这些bean进行后续的生命周期管理


0 0