設定管理クラス

Javaのプロジェクトにだいたい1つは設定を管理するクラス(設定ファイルを読み込んで、設定をクラス/インスタンス内に保持する)が必要になる。
以下、考えたこと。

設定の取得方法

いちいちgetterを作るのが面倒くさいので、以下のようなコードを考えた。


public final class Config {
private static void boolean isInit = false;
public static final String HOGE = get("foo.bar");

private static String get(String key) {
init();
...
}

private static void init() {
if(!isInit) {
...
}
...
}
}

設定値ってgetterは不要かな…と思う。

問題点は

  • 初期化のタイミングがちょっと問題になる(かも)。
  • get()が検査例外を投げると、コンパイルエラー(でも、設定読み込み失敗って致命的なような…)

EJBの設定管理

分散環境では設定も分散されるので、初期化のタイミングでハマッた。
片方で初期化しても、もう片方には反映されていない…

設定も入力

テストをしているとき、設定値も入力になるよなぁ…と思った。
IoCパターンでは設定管理クラスのインターフェースが必要かも。