Java を使った Web アプリケーション(Servletなど)で、設定ファイルを使うシーンは多いと思います。
今まではライブラリを使用するときに設定ファイルを作成する機会が多かったので、オリジナルな設定ファイルはあまり読み込みをしたことがありません。
そこで、使う機会がありそうなものをまとめてみました。
ファイルの種類について
ターゲットは、properties ファイルや xml ファイルです。
最近では yaml の方が人気でしょうか。
properties ファイルは Properties クラスという、不変のプロパティセットを扱うクラスを使います。
Tomcatのアプリの設定ファイル参照
Web アプリケーションサーバが Tomcat の場合は、webapps/appname/WEB-INF/classes 配下の設定ファイルを参照します。
Spring Boot などのフレームワークを利用する場合はフレームワーク側に依存するので、そちらの resouces 配下の application.yaml や application.properties になるでしょう。
1 2 3 | // getResourceAsStream()を使う Properties prop = new Properties(); prop.load(this.class.getResourceAsStream("/hogehoge.properties")); |
Fileクラスでxml参照
次に File クラスを使って xml ファイルを読み込んでみます。
ファイルオブジェクトの作成に使用する API によって、ファイルを参照するディレクトリが変わってきます。
1 2 3 4 5 6 | // getResource()を使う URL resouceUrl = this.getClass().getClassLoader().getResource("hogehoge.xml"); File file = new File(resouceUrl.toURI()); // String(文字列)を使う File file = new File("hogehoge.xml"); |
getResource() を使う場合は webapps/appname/WEB-INF/classes 配下の設定ファイルを参照します。
String(文字列)を使う場合は File.getAbsolutePath() で表示されるパスの設定ファイルを参照します。
例えば Windows で C ドライブ直下に Tomcat を入れていれば C:\tomcat、Linux で /usr/local/tomcat に Tomcat を入れていれば /usr/local/tomcat となります。
実際はもっと一般的なファイルをロードする方法があると思いますが、とりあえずメモ程度に。