我已经编写了一个小型Web应用程序,该应用程序允许客户端使用Intellij中的Glassfish Server发布值,然后获得这些值的总和。我希望总和在服务重新启动中持续存在。当前,该总和正在使用Singleton资源进行跟踪,以便可以与几个不同的类共享。有什么方法可以在本地目录中编写和读取文件?类似:
src:
Singleton
Rest of classes
res:
PersistentDataFile
是的,您可以在本地文件中写入数据,但不应在resources
目录中。因为,如果您在resources
目录中,它将成为WAR
文件的一部分,然后,如果您部署了更新的WAR
文件,则此文件将被覆盖。
现在有2个解决方案 -
1(将数据存储在网络应用程序外放置的文件中。但是,您需要处理multi-threading
,并且必须编写代码以避免使用一个 thread
,即超过1 request
。
2(推荐方法 - 用于处理这种情况,建议将这些数据存储在database
中。在这种方法中,您还需要处理多个thread
的数据修改。但是,可以通过编写适当的SQL
查询来轻松处理此类情况,可以在单个query
中进行读取(并非总是可能(,或维护某些version
列或数据库中的last modified timestamp
列。