实际的业务场景,我们在春季使用原型范围



我在春天读到了豆子的不同范围。

每次我在xml中创建bean时,我从未使用过scope属性,这意味着它被SingleTon了。

对于原型,我读到" 原型范围是有状态豆的首选">

有状态的豆子是什么意思?有人可以给我实时示例,我们有原型范围吗?

由于 singleton 是整个应用程序的一个实例,而这个对象(我说的是模式,甚至还没有春天(如果示例名称有一些状态。这个名为 name 的字段应该没问题,而只有一个线程调用该对象。但是,正如我之前所说,单例是一个应用对象。

春季典型案例

@Component
MyComponent{
 private String name;
 public void editName(String newName)
  {
    name=newName
  }
}

尽快有多个线程调用此 bean,您将具有竞争条件(您应该阅读有关它的信息(。这就是为什么单例必须没有状态,但可以有其他依赖项(依赖项注入(的原因。

如果你使用原型范围,spring每次使用都会创建一个对象,所以在示例中名称不会被共享,并且有任何竞争条件,这很好!!

最新更新