3

我听说从 Ja​​va EE 环境(例如 Glassfish Server)读取和写入文件是糟糕的设计和糟糕的决定。它总是真实的吗?

我知道这不好,因为多个线程可以访问一个文件。我想为我的应用程序创建一个动态属性文件。只有一两个管理员会调整属性。所以我可以将属性保存在数据库中,但更简单的方法是将其存储在文件中。

那么更简单的方法是一个糟糕的决定吗?有什么缺点呢?

4

2 回答 2

2

您可能知道,规范禁止在 EJB 中写入(和读取)文件,因为文件不是事务性资源,因此不能由容器管理。因此,如果您想安全起见,请不要这样做。也就是说,许多仍然没有问题,包括许多需要配置的常见第三方库。不过,我会考虑将其放入数据库中。不会那么难。

编辑

我的答案是假设您正在谈论在 EJB 容器中执行此操作,当我再次阅读您的问题时,这当然可能不是这种情况。如果它只是一个简单的 Web 应用程序,规范中不存在这样的限制。但是您可能会发现将它放在数据库中还是很有用的,因为将增量更新同步到数据库比同步到文件更容易。

于 2013-05-07T08:22:24.297 回答
1

在这件事上,这不是一个糟糕的决定。

正如您提到的那样,按容器存储文件作为普通用户案例是一个糟糕的决定,因为它是:

  1. 慢的
  2. 不是线程安全的。

但是您提供的案例是相当配置而不是正常使用,所以我看不出它的缺点。

但是无论如何,您应该小心并使用某种互斥方式不要同时由两个管理员存储文件。

于 2013-05-07T08:07:18.927 回答