所有的Spring Bean默认都是单例,如果须要多例,则须要配置如下:
<bean id="ticket" class="com.springinaction.springidol.Ticket" scope="prototype" />
作用域 | 定义 |
singleton | 在每一个spring容器中,一个Bean定义只有一个对象实例(默认) |
prototype | 允许Bean可以被实例化任意次 |
reqyest | 在一次HTTP请求中,每个Bean定义对应一个实例。该作用域仅在基于web的spring上下文中才有效。 |
session | 在一个HTTP Session 中,每个Bean定义对应一个实力。该作用域仅在基于web的spring上下文中才有效。 |
global-session | 在一个全局HTTP Session中,每个Bean定义对应一个实例。该该作用域仅在基于web的spring上下文中才有效。 |
初始化和销毁Bean:
<bean id="auditorium" class="com.springinaction.springidol.Auditorium" init-method="turnOnLights" destroy-method="turnOffLights" />
Auditorium实例化后,会调用turnOnLights方法,被销毁后会调用turnOffLights方法;