何时读取Java Web应用程序中的.properties文件

时间:2010-11-30 11:57:56

标签: web-applications java-ee properties-file

我正在使用Java EE6和JSF 2.0开发Web应用程序。我有一个.properties文件,其中我存储了一些常量,我需要在部署应用程序之前轻松更改。我知道如何读取属性文件,但问题是什么时候?

这是我用来访问名为CLIENT_IDCLIENT_SECRET的属性的类:

public class FConnectProperties {

    Properties properties;

    public FConnectProperties() throws FileNotFoundException, IOException{
        properties = new Properties();
        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
        InputStream stream = classLoader.getResourceAsStream("/FConnect/FConnect.properties");
        properties.load(stream);
        stream.close();
    }

    public String getClientID(){
        return properties.getProperty("CLIENT_ID");
    }

    public String getClientSecret(){
        return properties.getProperty("CLIENT_SECRET");
    }

由于这个类从磁盘读取属性文件,每次我需要访问它时是否可以实例化它?或者我应该在应用程序启动期间(可能来自Singleton Bean)实例化一次并从那里访问它?这样做的最佳方法是什么?

启动应用程序后,属性不会更改。我只是在阅读它们,从不更新它们。

2 个答案:

答案 0 :(得分:0)

我建议你在启动时阅读一次这个文件,正如你所说的那样将它们保存在一个单例中。由于我猜测你的属性是一对键/值对的选择,并不是那么大,我认为它们应该在地图类型的数据结构中表现良好。

根据您需要访问它们的频率,从磁盘读取它们可能会变得很昂贵。

答案 1 :(得分:0)

由于属性文件没有更改,因此只生成应该在启动时加载的文件的一个实例。无需再次读取文件。