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

与spring单例bean共享集合

封飞
2023-03-14

我想在SpringMVC应用程序中保存一个用户对列表。任何用户都可以访问和更改列表(可以删除对,也可以添加新的对)。我不想将此列表保存为数据库中的一个表,因为我希望在web应用程序的执行过程中会形成许多对用户,并且应该经常执行此过程。我决定这个列表是一个单例Springbean(例如,名为ListHolder)的字段,它连接到不同的控制器。由于我是Spring的新手,我担心的是当很多用户同时使用该应用程序时,可能会出现竞争情况。我如何保护我的列表不受此类情况的影响?这是在spring应用程序中保存数据的正确方法吗?最佳实践是什么?

另外,当我想添加一对时,我只需要用户列表。添加方法。删除时,我首先复制整个列表,然后遍历它(复制),删除所需的列表,更改列表引用。

共有1个答案

商迪
2023-03-14

可以使用CopyOnWriteArrayList。它将保护您的列表免受多线程

 类似资料:
  • 我一直在努力理解春豆。根据我的理解,默认情况下所有bean都是singleton,并且在第一次请求时创建具有lazy-init属性设置为true的singleton bean,在创建应用程序上下文时创建具有lazy-init属性设置为false的singleton bean。 因此,在应用程序中,当一个用户请求进来时(每个请求都是一个单独的线程),当在程序/类中被请求时,所有这些线程是否共享相同的

  • 假设有两个类ClassA和ClassB。假设ClassB依赖于ClassA。在配置文件中,如果我们将ClassA的作用域定义为singleton,而将ClassB的作用域定义为Prototype,那么每次创建ClassA的bean实例时ClassB的实例会发生什么?每次返回ClassA实例时,会返回相同的ClassB实例还是创建新实例? 谢谢!!!

  • Spring具有bean类型/作用域,如 -singleton bean(每个应用程序上下文只有一个bean), -prototype bean(每个请求一个新bean) 现在,如果在单例bean中有对原型bean的引用,是否有办法在对单例bean的每个请求中获得一个新的原型bean(在单例bean中)。< br >如果是,配置会是什么样的?

  • 我们将一个spring bean实现为单例(默认)。此bean用作Web服务的一部分,当触发多个同时请求时,responseholder(单例bean)在尝试检索时抛出NullPointerException。这通常发生在响应是build的时候,然后在发送回原始响应之前触发了一个新的请求。 这可能是bean的单点实现造成的吗?如果是的话,就不会改成原型来解决我的问题了。总是用新操作员启动它怎么样?

  • 物联网的发展催生了无桩式共享单车的爆发,其原理主要是采用了“手机端—云端—单车端”的架构,共享单车的智能锁内部集成了GPS系统和带有SIM卡!它能够将车辆所在位置和电子锁的状态传输给云端。 我们能够提供: 流量池模式,解决不同自行车的流量消耗不同,节约综合成本; 短信API,出于节能考虑,设备不是实时联网,需要短信激活解锁; SIM卡全生命周期管理,自行车损耗大,废弃的及时停卡,以免造成资费。

  • 我试图使CORS与Spring Security很好地配合,但它并不符合要求。我进行了本文所述的更改,更改中的这一行使我的应用程序可以使用POST和GET请求(临时公开控制器方法,以便测试CORS): 前面: 后面: 不幸的是,允许通过AJAX进行Spring Security登录的以下URL没有响应:。我正在将AJAX请求从发送到。 当尝试访问时,我在Chrome中获得了选项预飞行请求,AJAX