技術メモブログ

技術ネタの備忘録的なブログ。技術ネタ以外にも気になったことをつらつら書きます

リソースプロパティファイルの読み込み方

Webアプリケーションで
リソースファイルを Listener で読み込むのを想定
 
プロジェクトは Gradle の構成
リソースファイルは src/main/resources の下

f:id:mtkj:20170426231425j:plain

war の中はこんな感じ
f:id:mtkj:20170426232414j:plain

この時 MessageProperty でリソースファイルを読み込む場合
以下のようにすればファイルを読み込める

public static void initialize() {

  // こっちの場合、ファイルの絶対パスが取れるので
  // 後からストリームを作ってやればいい
  //String path = MessageProperty.class.getClassLoader().
  //              getResource("system.properties").getPath();

  // 個人的にはこちらのやり方が好み
  try (InputStream iss = MessageProperty.class.
          getClassLoader().getResourceAsStream("system.properties")) {
    prop.load(iss);
  } catch (IOException e) {
   e.printStackTrace();
  }
}

ソースファイルと同じ位置にあるリソースファイルの場合は
こっちの方法を使えば読める
(あまり無いだろうけど)

MessageProperty.class.getResourceAsStream("ファイル名")