一.配置Bean的作用域:
<bean id="..." class="..." scope="prototype"/>
通过配置bean标签中的scope属性来配置Bean的作用域,scope有以下几种取值:
singleton:单例模式,即通过spring容器取得的所有bean的实例都为同一实例(默认情况下为单例模式)
prototype:原型模式,即每次通过spring容器取得的bean都是一个新的实例
如果是web应用,则还可以为bean配置以下三种作用域:
request:bean作用域为request范围内
session:bean作用域为session范围内
global session:bean作用域为application范围内
二.bean的生命周期
bean类的初始化:
1.不配置lazy-init的情况下
bean的作用域为singleton,bean类的初始化会在spring容器初始化的时候完成。
bean的作用域为prototype,bean类会在通过spring容器获取bean类的时候进行初始化。
2.配置lazy-init的情况下,上诉两种作用域的bean都会在通过spring容器获取其实例的时候完成初始化。
配置bean的延迟初始化:
1.配置单个bean类的延迟初始化:
<bean id="..." class="..." lazy-init="true"/>
2.配置所有bean类的延迟初始化:
<beans .... default-lazy-init="true"> .... <bean id="..." class="..." /> .... </beans>
在配置了default-lazy-init属性后,如要单独修改某个bean类的延迟初始化,在该bean类中在配置lazy-init属性即可
配置bean的初始化方法及销毁方法:
1.配置单个bean类:
<bean id="..." class="..." init-method="init" destroy-method="destroy"/>
2.配置所有bean类:
<beans .... default-destroy-method="destroy" default-init-method="init"> .... <bean id="..." class="..." /> .... </beans>