2012-03-15 28 views
3

私は自分のアプリケーション設定を持つJavaシングルトンクラスを持っています。プロパティファイルを読み込んでJavaシングルトン(enum)に渡す方法

私はこのアプローチを使用:What is an efficient way to implement a singleton pattern in Java?

だから私は持っている:

public enum MySettings { 

    INSTANCE; 

    // bunch of private vars 


    private MySettings { 
    // load a json file and set my properties 
    JsonParser parser = jf.createJsonParser(new File("HARD_CODED_PATH_HERE")); 
    } 

    // public getters/setters here 


} 

だから、問題は、私が現在持っているハードコードされたパスです。

私は私の/ WEB-INF /フォルダ内のsettings.propertiesファイルを作成し、今の問題は、私はプロパティファイルをロードする方法を知っている唯一の方法ですが、それは、サーブレットコンテキストが必要です。

Properties prop = new Properties(); 
propertiesload(getServletContext().....); 

ですこれをロードする別の方法がありますか?

このプロパティファイルはプロパティファイルの静的な表現ですか?すなわち、それは非常に速く効果的ですか?

+0

@AndyRayが、私は...私は批判をしてみたい – Blankman

+0

を60%を受け入れているが、鉱山は40%O_Oである:ここで

は春を使用してプロパティファイルをロードする方法1男のテイクです。 –

+0

@Tom質問合計6つの質問を投稿しても、誰もあなたを責めるつもりはありません:) –

答えて

1

あなたはWEB-INFフォルダではなくsrcフォルダの下にプロパティを置くことができますか?

WORKDIR 
+ SRC 
| + PACKAGES 
| | + org.personal.foo 
| - system.properties 
| + WEB-INF 
+0

これは、(a)プロパティファイルがパッケージ化されたWARファイルで終わるところを説明し、(b)それをコードにロードすることができます。 –

+0

@TomAnderson私はリソースとして埋め込まれたファイルを望んでいません。なぜなら、私は設定を変更するために(つまりTomcatを再起動するのではなく)再コンパイルする必要があるからです。したがって、/ web-infフォルダにプレーンテキストで表示されます。 – Blankman

+1

@Blankman:あなたのWARが爆発したような場合は、再コンパイルする必要はありません。ファイルを変更して再起動するだけです。 –

関連する問題