【问题标题】:When to read a .properties file in a Java Web Application何时在 Java Web 应用程序中读取 .properties 文件
【发布时间】:2011-05-17 20:09:53
【问题描述】:

我正在使用 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");
    }

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-08-18
        • 1970-01-01
        • 2013-05-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多