0

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

这是我用来访问名为CLIENT_IDand的属性的类CLIENT_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");
    }

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

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

4

2 回答 2

0

我建议在启动时阅读一次文件,就像你说的那样把它们放在一个单例中。由于我猜测您的属性是键/值对的选择,并不是那么大,我会说它们应该在映射类型的数据结构中表现良好。

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

于 2010-11-30T12:06:01.820 回答
0

由于属性文件不会更改,因此只创建一个应该在启动时加载的文件实例是有意义的。无需再次读取文件。

于 2011-01-27T04:30:00.613 回答