`

Spring Bean 的作用域

阅读更多
在spring中bean一共有5个作用域。

1、singleton作用域
在每个Spring IoC容器中一个bean定义只有一个对象实例。默认情况下会在容器启动时初始化bean,但我们可以指定Bean节点的lazy-init=“true”来延迟初始化bean,这时候,只有第一次获取bean会才初始化bean。如:
<bean id="xxx" class="cn.ehoo.PersonServiceBean" lazy-init="true"/>
如果想对所有bean都应用延迟初始化,可以在根节点beans设置default-lazy-init=“true“,如下:
<beans default-lazy-init="true“ ...>

2、prototype

每次从容器获取bean都是新的对象。当scope为prototype时,实例化bean的时间为第一次调用这个bean时。如果没有调用这个bean对应的bean是不会被实例化的。就是加上lazy-init=“false“也不会对相应的bean进行初始化。
<bean name="personService" class="cn.ehoo.service.impl.PersonServiceBean" scope="prototype"/>

下面的三个都是在web程序中使用的。先不介绍
3、request
4、session
5、global session

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics