我在春天读到了豆子的不同范围。
每次我在xml中创建bean时,我从未使用过scope属性,这意味着它被SingleTon
了。
对于原型,我读到" 原型范围是有状态豆的首选">
有状态的豆子是什么意思?有人可以给我实时示例,我们有原型范围吗?
由于 singleton 是整个应用程序的一个实例,而这个对象(我说的是模式,甚至还没有春天(如果示例名称有一些状态。这个名为 name 的字段应该没问题,而只有一个线程调用该对象。但是,正如我之前所说,单例是一个应用对象。
春季典型案例
@Component
MyComponent{
private String name;
public void editName(String newName)
{
name=newName
}
}
尽快有多个线程调用此 bean,您将具有竞争条件(您应该阅读有关它的信息(。这就是为什么单例必须没有状态,但可以有其他依赖项(依赖项注入(的原因。
如果你使用原型范围,spring每次使用都会创建一个对象,所以在示例中名称不会被共享,并且有任何竞争条件,这很好!!