默认时,所有Spring Bean都是单一的.也就是说,当容器分配一个Bean时(不论是通过自动装配,或者还是通过调用容器的getBean()),总是会分发Bean的准确实例.但是有时需要在第次请求时都需要一个唯一的Bean实例.
如何重载Spring默认的单一性质呢?
当在SPRING中声明<BEAN>时,有声明Bean范围的选项.为了使得每次都能产生一个新的Bean实例,可以声明Bean的Scope属性为prototype.
范围化是Spring2.0新增加的功能.在Spring2.0之前,可以设置<Bean>的singleton属性为false,使得它是原型Bean.
singleton属性的二进制形式局限性很多,且不允许添加其他Bean 的范围,因此增加了scope属性,也是为了向向兼容.如果在定义上下文时使用Spring2.0DTD或XML方案,则必须使用scope属性.但是,如果仍然使用Spring1.xDTC,则必须使用singleton属性.