Spring bootにてresourcesを参照するお話
先日のサンプルにバグがあった…
コンストラクタにてリソースを定義して、抽象クラスで参照させていたが
public DBAccessService() { super("sql/service1.properties"); }
その部分がダメだった…
getResourceAsStream…何だが
bufferedReader = new BufferedReader( new InputStreamReader( this.getClass().getClassLoader().getResourceAsStream(filePath)));
mvn spring-boot:runにて実行すると普通に参照できる。
しかしながら、jar化して実行すると、resourcesが見つからない…
結構悩んだ…
結局の答えは、ズバリ!
ResourceLoaderでした!
使い方はシンプル
@Autowired private ResourceLoader resourceLoader;
にて、ResourceLoaderを参照させて、
inputStreamReader = new InputStreamReader( resource.getInputStream(), StandardCharsets.UTF_8);
って感じですね。
これで、spring-boot:runでも、jar化しても参照可能です。
いいかんじぃー