【问题标题】:Java servlet access to config fileJava servlet 访问配置文件
【发布时间】:2015-07-19 02:05:07
【问题描述】:

我正在向 glassfish 部署一个 war 文件,并且想知道是否有可能拥有一个可以在其中存储可以在我的 Web 方法中访问的属性的文件。问题是我想在业务请求发生变化时更改文件,而无需重新编译。我可以将它存储在数据库中或将其作为 glassfish 本身的系统属性,但想知道文件方式是否可行。

我已经阅读了这些,但似乎你必须重新编译?:

Load properties file in Servlet/JSP

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

【问题讨论】:

  • 我了解您希望避免重新编译。文件更新后是否允许重新启动应用程序?
  • @Brett,重新开始就好了。

标签: java servlets glassfish


【解决方案1】:

当然可以。您可以在启动时加载属性并注意文件的修改时间;然后您可以在修改时间更改时重新加载属性,即当有人编辑它时。检查和重新加载可以使用后台线程或在访问时完成,但请注意处理同步,因为所有同时的请求都会相互竞争。

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

【讨论】:

  • 这听起来很有希望。所以我有一个存储文件位置的系统属性,并且每次运行该方法时,它都可以重新加载文件?
  • 是的,原则上。但是,在每次访问时重新加载文件可能过于昂贵。我可能会使用一个后台作业,每分钟左右检查一次文件修改,并让它在更改时重新加载。
  • 谢谢。我要走这条路。
猜你喜欢
  • 1970-01-01
  • 2011-01-15
  • 2010-10-09
  • 1970-01-01
  • 1970-01-01
  • 2014-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多