我正在将一个war文件部署到glassfish,并且想知道是否有可能在其中存储可以在我的Web方法中访问的属性的文件。我想要更改文件,因为业务请求更改而无需重新编译。我可以将它存储在DB中,或者将它作为glassfish本身的系统属性,但是想知道文件是否可行。
我已阅读过这些但似乎你必须重新编译?:
Load properties file in Servlet/JSP
loading properties file in init() of servlet without using context-param tag in web.xml
答案 0 :(得分:3)
当然可以。您可以在启动时加载属性并记下文件的修改时间;然后,当修改时间发生变化时,即当有人编辑它时,您可以再次重新加载属性。检查和重新加载可以使用后台线程或访问,但要小心处理同步,因为所有同时请求将相互竞争。
我将文件保存在Glassfish之外并使用系统属性或上下文参数指向它,但您也可以编辑Glassfish提取WAR文件的属性文件。