Scope 属性
打个比方,我们都是处于社会中,如果把中学教师作为一个类定义,那么当容器初始化这些类之后,中学教师只能局限在中学我这样的场景中;中学,就可以看做中学教师的Scope。
配置文件中的bean定义可以看做是一个模板,容器会根据这个模板来构造对象。但是要根据这个模板构造多少 实例对象,又该让这些构造完的对象实例存活多久,则由容器根据bean定义的scope来决定。
<bean id="mkckobject" class="...MockBusinessObject" scope="singleton" />
上述代码的意思是:在一个容器中只存在一个共享实例,所有对该类型bean的依赖都将引用这一个单一实例;singleton类型的bean定义,从容器启动,到它第一次被请求就实例化,直到容器销毁或者退出,否则,该类型的bean定义就会一直存在。
<bean id="mkckobject" class="...MockBusinessObject" scope="prototype" />
对于那些请求方不能共享的对象,例如顾客的信息,就应该将它们的scope属性设置为prototype。