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

在Spring中,多个线程请求共享相同的单例bean吗?

樊运乾
2023-03-14

我一直在努力理解春豆。根据我的理解,默认情况下所有bean都是singleton,并且在第一次请求时创建具有lazy-init属性设置为true的singleton bean,在创建应用程序上下文时创建具有lazy-init属性设置为false的singleton bean。

因此,在应用程序中,当一个用户请求进来时(每个请求都是一个单独的线程),当在程序/类中被请求时,所有这些线程是否共享相同的单例bean?

共有1个答案

云洋
2023-03-14

是的,如果bean是用默认范围创建的,则bean是跨线程共享的。但是,可以使用另一个范围来实现您提到的行为。参见:https://docs.spring.io/spring-framework/docs/3.0.0.m3/reference/html/ch04s04.html?

 类似资料:
  • 对于Spring,如果我有两个请求同时访问singleton bean呢?一个请求是否必须等到另一个请求完成。Spring容器如何为我的请求找到单例bean实例? 对于servlet,如果我有两个请求同时访问正常类的正常方法(没有静态没有其他复杂的东西)?一个请求是否必须等到另一个请求完成才能避免并发(同时两个请求试图访问同一类的对象)。Web容器如何找到我的请求的实例?

  • 我想在SpringMVC应用程序中保存一个用户对列表。任何用户都可以访问和更改列表(可以删除对,也可以添加新的对)。我不想将此列表保存为数据库中的一个表,因为我希望在web应用程序的执行过程中会形成许多对用户,并且应该经常执行此过程。我决定这个列表是一个单例Springbean(例如,名为ListHolder)的字段,它连接到不同的控制器。由于我是Spring的新手,我担心的是当很多用户同时使用该

  • 问题内容: 我想像这样在多个线程之间共享一个变量: 我想在主线程和帮助线程之间共享,这是我创建的两个不同的Java类。有什么办法吗?谢谢! 问题答案: 二者并可以参照包含该变量的类。 然后,可以使该变量为 volatile ,这意味着 对该变量的更改在两个线程中立即可见。 有关更多信息,请参见本文。 易变变量 共享已同步的可见性功能,但不共享原子性功能。这意味着线程将自动 查看volatile变量

  • 假设我有一个具有endpoint 的 java Web 应用程序,我想同时启动 Web 应用程序的多实例,这可以在每个实例上使用不同的侦听端口来实现。 但我想要的是,所有实例都可以共享相同的路由,即当我向,它将自动(负载平衡)路由到多个实例之一。我想要这样做的原因是,当通过k8s部署微服务时,我们可以为一个应用程序拥有多个pod,并且这些pod共享单个服务(即单个精心设计的url) 在java中,

  • 我在项目中使用drools 6.3.0。我有大约3000条规则,分为两类。比如,类别1有1500条规则,类别2有1500条规则。有2万份订单具有不同的数据。每个订单都有一组不同的属性。现在,为每个请求创建kiesession需要时间,而且速度非常慢。因此,计划使用相同的kiesession执行所有订单,订单将使用多线程处理。 以下是我目前的做法。 这就是我创建kiesession的方式,我想将此k

  • 我想知道Spring单例豆是否是线程安全的,如果是,那么为什么,如果不是,那么为什么? 因为我是初学者,所以帮助将不胜感激。