2010-11-30 53 views
0

我正在开发一个使用Java EE6和JSF 2.0的Web应用程序。我有一个.properties文件,其中存储了一些常量,我需要在部署应用程序之前轻松更改这些常量。我知道如何阅读属性文件,但问题是什么时候?何时读取Java 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)实例化一次,然后从那里访问它?做这件事的最好方法是什么?

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

回答

0

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

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

0

由于属性文件不会更改,因此只应创建一个应在启动时加载的文件实例。没有必要再读取文件。

相关问题