我应该在哪里设置此配置?

时间:2009-11-13 18:39:31

标签: java web-applications configuration java-ee

我正在设计一个相当小的Web应用程序,它将在Sun应用程序服务器(v9.1)上运行。它只有几页,没有自己的数据库,并将通过Web服务检索/更新数据。其中一个页面上有一个文本块,我们预计需要由系统管理员偶尔更新(一年几次?)。允许更新该文本块的最佳方法是什么?

我认为修改Web服务以提供文本是不可行的选择。如果我们不必重新启动Web应用程序来进行更新,那也很好。

3 个答案:

答案 0 :(得分:4)

如果使用属性文件是一个选项,您可以使用Commons Configuration从类路径加载它(因此它可能在WAR之外)并使用automatic reloading功能重新加载它以防变化。

(编辑:要回答关于Commons Configuration的评论,我同意它可能不是Apache的最佳代码,但我不能说我发现这是一场噩梦:

PropertiesConfiguration config = new PropertiesConfiguration("usergui.properties");
config.setReloadingStrategy(new FileChangedReloadingStrategy());

使用属性可能并不理想,但是,对于一个HTML块,它应该可以解决问题。)

答案 1 :(得分:0)

重新阅读你的问题:

如果文本是唯一需要更改的属性,则属性文件不是正确的解决方案。我们处于servlet环境中,你很少改变它。

我认为文本应该通过生命周期监听器从纯文本文件读取(通过通常的文件I / O方法)到ServletContext中。如果你想更改文本,请使用编辑器,然后快速重新启动该servlet,就完成了。该应用程序可以引用侦听器放入上下文的(单个)内存中副本,它可以快速运行并且很容易更改。

答案 2 :(得分:0)

您可以保持propeties file格式并使用java.util.ResourceBundle从中获取值。这样您就可以使用ResourceBundle#clearCache()或提供自定义ResourceBundle#Control来控制缓存。