2010-11-30 16 views
0

Java EE6とJSF 2.0を使用してWebアプリケーションを開発しています。私はアプリをデプロイする前に簡単に変更する必要があるいくつかの定数を保存している.propertiesファイルを持っています。私はプロパティファイルを読む方法を知っていますが、その質問はいつですか?それはOKですそれを私がアクセスする必要があるたびにインスタンス化するために、このクラスはプロパティがディスクからファイルを読み込むのでJava Webアプリケーションで.propertiesファイルを読み込む場合

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"); 
    } 

これは、私はプロパティにアクセスするために使用しているクラスがCLIENT_IDCLIENT_SECRETと呼ばれますそれら?または、アプリケーションの起動時に(おそらくSingleton Beanから)一度インスタンス化してそこからアクセスする必要がありますか?これを行う最善の方法は何ですか?

プロパティは、アプリケーションの起動後は変更されません。私はそれらを読んでいるだけで、それらを更新することはありません。

答えて

0

私はスタートアップ時に一度ファイルを読むことをお勧めします。私はあなたのプロパティがキー/値ペアの選択であると推測しているので、それほど大きなものではありません。マップ型のデータ構造でうまくいくはずです。

アクセスする頻度によっては、ディスクから読み取るのにコストがかかる可能性があります。

0

プロパティファイルは変更されないため、起動時にロードする必要があるファイルのインスタンスを1つだけ作成することは理にかなっています。ファイルを再度読み取る必要はありません。

関連する問題