当前位置: 首页 > 知识库问答 >
问题:

实际业务场景Spring我们在哪里使用原型范围?

林魁
2023-03-14

我在Spring重新认识了豆子的不同范围。

每次我在xml中创建bean时,我都从未使用scope属性,这意味着它是单例的。"

对于原型,我读到“有状态bean首选原型范围”

有状态bean是什么意思?谁能给我一个实时的例子,我们在哪里有原型范围?

共有1个答案

阚元白
2023-03-14

因为singleton是整个应用程序的一个实例,而这个对象(我说的是patter,甚至不是spring)的示例名称有一些状态。当只有一个线程调用对象时,这个名为name的字段应该可以。但正如我前面所说的,singleton是一个应用程序对象。

Spring的一个典型例子

@Component
MyComponent{

 private String name;

 public void editName(String newName)
  {
    name=newName
  }

}

只要有多个线程调用这个bean,您就会有竞争条件(您应该了解它)。这就是为什么单例不能有状态,但可以有其他依赖项(依赖项注入)。

如果您使用原型范围,Spring将每次使用创建一个对象,因此在示例中名称将不会被共享并且存在任何竞争条件,这很好!!

 类似资料:
  • 在C 03中,我们有模板显式实例化定义(

  • 我有一个Spring批处理应用程序。我的Spring批处理应用程序由两个步骤组成。 提取csv数据,添加到记录tbl 提取记录tbl行,根据数据验证解析到Food tbl。 步骤2使用微线程完成 我需要处理记录行tbl,无论是否验证,当前日期时间都会添加回记录行 a.验证失败,DateTime错误代码也将添加到记录行中 b.通过验证,日期时间添加到记录行中。Row也将添加到食品tbl中。 在步骤2

  • 本文向大家介绍我们在jQuery的哪里使用$ .extend()方法?,包括了我们在jQuery的哪里使用$ .extend()方法?的使用技巧和注意事项,需要的朋友参考一下 jQuery.extend()方法用于将两个或更多对象的内容合并在一起。该对象将合并到第一个对象中。  您可以尝试运行以下代码以了解如何使用方法- 示例

  • 我非常了解minimax和alpha-beta修剪在返回“最佳值”方面的工作原理。然而,我不确定“最佳行动”应该分配到哪里。 我知道最好的动作需要来自传入的原始棋盘,因为我正在寻找一个最大值,所以它必须在最大化玩家下分配。然而,使用我当前的代码会导致最佳动作被一次又一次地重新分配。 例如,如果原始棋盘是O-\n---\n---,那么最佳动作就变成了 OX-\n---\n---,然后重新分配给O-X

  • 问题内容: 首先,一些定义: PUT在9.6节RFC 2616中 定义: PUT方法请求将封闭的实体存储在提供的Request-URI下。如果Request-URI引用了已经存在的资源, 则应 将封闭的实体 视为原始服务器上的 资源 的修改版本 。如果Request- URI没有指向现有资源,并且请求用户代理能够将该URI定义为新资源,则原始服务器可以使用该URI创建资源。 PATCH在RFC 5

  • 本文向大家介绍ZooKeeper 典型应用场景有哪些?相关面试题,主要包含被问及ZooKeeper 典型应用场景有哪些?时的应答技巧和注意事项,需要的朋友参考一下 ZooKeeper 概览中,我们介绍到使用其通常被用于实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。 下面选 3 个典型的应用场景来专门说说: 分布式锁 :通过创