首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Spring治理的Bean的作用域以及生命周期

2012-08-26 
Spring管理的Bean的作用域以及生命周期一.配置Bean的作用域:bean id... scopeprototype/?通过配置

Spring管理的Bean的作用域以及生命周期

一.配置Bean的作用域:

<bean id="..." 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="..." lazy-init="true"/>?

2.配置所有bean类的延迟初始化:

<beans .... default-lazy-init="true">      ....     <bean id="..." />      ....</beans>

???在配置了default-lazy-init属性后,如要单独修改某个bean类的延迟初始化,在该bean类中在配置lazy-init属性即可

?

配置bean的初始化方法及销毁方法:

1.配置单个bean类:

<bean id="..." init-method="init"  destroy-method="destroy"/>

2.配置所有bean类:

<beans .... default-destroy-method="destroy" default-init-method="init">      ....     <bean id="..." />      ....</beans>

?

热点排行