使用spring singleton beans共享集合

时间:2016-06-26 08:27:45

标签: java spring spring-mvc singleton javabeans

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

P.S。当我想添加一对时,我只使用List.add方法。删除时,我首先复制整个列表,然后遍历它(复制),删除所需的列表,更改列表参考。

1 个答案:

答案 0 :(得分:0)

您可以使用CopyOnWriteArrayList。它可以保护您的列表免受多线程的攻击。<​​/ p>