2010-11-30 55 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

由於屬性文件不會更改,因此只應創建一個應在啓動時加載的文件實例。沒有必要再讀取文件。

相關問題