我编写了一个小型Web应用程序,允许客户端使用intellij中的glassfish服务器POST值,然后获取这些值的总和。我希望总和在服务重启期间持续存在。目前,使用Singleton资源跟踪总和,以便可以与几个不同的类共享。有没有办法可以在本地目录中编写和读取文件?类似的东西:
src:
Singleton
Rest of classes
res:
PersistentDataFile
答案 0 :(得分:0)
是的,您可以在本地文件中写入数据,但不应该在resources
目录中。因为,如果您在resources
目录中,它将成为WAR
文件的一部分,之后,如果您部署更新的WAR
文件,此文件将被覆盖。
现在有2个解决方案 -
1)将数据存储在Web应用程序之外的文件中。但是,您需要处理multi-threading
,并且必须编写代码以避免更多的thread
文件读取/写入,即超过1 request
。
2)推荐方法 - 为了处理此类情况,建议在database
中存储此类数据。在这种方法中,您还需要处理多个thread
的数据修改。但是,通过编写适当的SQL
查询可以轻松处理这种情况,通过该查询可以在单个query
中完成读写(并非总是可行),或者维护一些version
列或{{ 1}}数据库中的列。