我正在将一个战争文件部署到glassfish,并想知道是否有可能拥有一个可以存储属性的文件,这些文件可以在我的Web方法中访问。问题是我想在业务请求更改时更改文件,而不必重新编译。我可以将其存储在数据库中,也可以将其作为glassfish本身的系统属性,但是想知道文件方式是否可行。

我读过这些,但似乎都需要重新编译?:

Load properties file in Servlet/JSP

loading properties file in init() of servlet without using context-param tag in web.xml

最佳答案

你当然可以。您可以在启动时加载属性,并记下文件的修改时间。那么您可以在修改时间更改后(即有人对其进行了修改)再次重新加载属性。可以使用后台线程或在访问时完成检查和重新加载,但是要小心处理同步,因为所有同时进行的请求都将相互竞争。

我会将文件保留在Glassfish之外,并使用系统属性或上下文参数指向它,但是您也可以编辑Glassfish提取WAR文件的属性文件。

09-10 01:45
查看更多