Javaのプロジェクトにだいたい1つは設定を管理するクラス(設定ファイルを読み込んで、設定をクラス/インスタンス内に保持する)が必要になる。
以下、考えたこと。
設定の取得方法
いちいちgetterを作るのが面倒くさいので、以下のようなコードを考えた。
設定値って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) {
...
}
...
}
}
問題点は
- 初期化のタイミングがちょっと問題になる(かも)。
- get()が検査例外を投げると、コンパイルエラー(でも、設定読み込み失敗って致命的なような…)
EJBの設定管理
分散環境では設定も分散されるので、初期化のタイミングでハマッた。
片方で初期化しても、もう片方には反映されていない…
設定も入力
テストをしているとき、設定値も入力になるよなぁ…と思った。
IoCパターンでは設定管理クラスのインターフェースが必要かも。