0

Java EE6 と JSF 2.0 を使用して Web アプリケーションを開発しています。アプリを展開する前に簡単に変更する必要があるいくつかの定数を格納する .properties ファイルがあります。プロパティファイルの読み方は知っていますが、問題はいつですか?

CLIENT_IDこれは、 and と呼ばれるプロパティにアクセスするために使用しているクラスです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

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

于 2011-01-27T04:30:00.613 に答える