けんとのブログ

ぼやき&開発メモ

プロパティエディタについて

2009年01月28日 15時45分39秒 | プロパティファイル・エディタ
J2EEアプリケーションの設定ファイル(あるいは国際化対応)は、プロパティファイルを利用することになる。
しかし、仕様上プラットホーム非依存を実現するために、
ファイル内のマルチバイト文字をJ2SDKに付属の「native2ascii」ツールでUnicodeに変換しなければならない。
たいした手間ではないものの、頻繁に「native2ascii」を実行するのも面倒である。

そこで、プロパティファイル編集用のeclipseプラグインをインストールする。
このプラグインでは、プロパティ編集中はマルチバイト文字で表示させ、
保存時に自動的にUnicodeに変換してくれる。

プラグインのインストール手順は「rough justice プロパティエディタ プラグインのインストール」
「http://www.esco-sb.jp/blog/roughjustice/archives/2006/02/post_1.php」参照。
完了後はEclipseで作った拡張子「.properties」のプロパティファイルを自動的にプロパティエディタで開いてくれる。

プロパティファイルについて

2009年01月28日 15時37分59秒 | プロパティファイル・エディタ
拡張子は「.properties」
classesフォルダに置く。srcフォルダの方を変更しても、classesファイルの方には反映されないので、
必ずclassesフォルダの方を変更する必要がある。

~DB接続設定をプロパティファイルで書く場合~
//プロパティファイル内容。
mysql.jdbc.driver=org.gjt.mm.mysql.Driver
mysql.jdbc.url=jdbc:mysql:///database名?useUnicode=true&characterEncoding=SJIS
mysql.jdbc.user=root
mysql.jdbc.password=root ←設定していない場合は「mysql.jdbc.password=」となる

//プロパティファイル読み込み。
ResourceBundle rb = ResourceBundle.getBundle("mysqljdbc");

// プロパティファイルから値を取得。
String driver = rb.getString("mysql.jdbc.driver");
String url = rb.getString("mysql.jdbc.url");
String user = rb.getString("mysql.jdbc.user");
String password = rb.getString("mysql.jdbc.password");


プロパティファイルを直接指定する場合にはストリームクラスとPropertiesクラスを用いて取得する。
また、ResourceBundleクラスを用いて取得することもできる。
ResourceBundleクラスの方がロケールの解決等をしてくれ取得が楽なため、
ResourceBundleクラスを用いて取得した方がよい。

プロパティファイルにASCII文字以外の文字列を記述する場合には、Unicodeに変換する必要がある。
Unicodeへの変換は、J2SEに付属しているnative2asciiコマンドを使用する。
変換後のファイルは「プロパティファイル名_言語コード.properties」とする。
「言語コード」はロケールで使用される言語コードであり、日本語であれば「ja」となる。
この命名規則を使用することで、リソースバンドル使用時にロケールの自動解決が行われる。

プロパティファイルを使用することで、プログラムの設定を外部ファイル化することができる。
そうしない場合、設定はプログラム上にハードコーディングされることになり、
設定の変更に再コンパイルが必要となる。プロパティファイルを用いることで、
再コンパイルをせずに設定を変更でき、また設定をひとつにまとめることができるようになる。