Spring中Bean的作用域
Spring 2.0之前Bean定义了2种作用域分别是:singleton、prototype。
Spring 3为Bean定义了5种作用域,分别为singleton(单例)、prototype(原型)、request、session和global session,Spring中的bean默认都是单例的。
配置如:
<bean id="SService" class="com.impl.DepartmentService" scope="作用域">
<property name="dao" ref="Sdao"/>
</bean>
5种作用域说明如下:
其中比较常用的是singleton和prototype两种作用域。如果不指定Bean的作用域,Spring默认使用singleton作用域。singleton作用域的Bean实例一旦创建成功,可以重复使用。
Spring中Bean的生命周期
浏览了网上大部分的关于Spring中Bean的生命周期,个人觉得比较好的一种,借下大神的图。
Spring中Bean的生命周期:
在 bean 的声明里设置 init-method 和 destroy-method 属性 , 为 bean 指定初始化和销毁方法。
<bean id="initBean" class="com.impl.DepartmentService" init-method="init" destroy-method="destroy">
<property name="dao" ref="Sdao"/>
</bean>
1:创建实例( init-method);
spring通过构造器或者工厂方法对bean进行实例化,默认bean是单例
2:注入依赖关系;
spring对bean的值和其他 bean的引用进行依赖注入
3:调用 bean 的初始化方法;
4:bean 初始成功,可以使用;
5:容器关闭时 , 调用 bean 的销毁方法(destroy-method);