自分がspring bootのプロジェクトの開発の初期段階で、よくあれ、どうするんだっけ?
と思うことの一つに、環境変数がある。
@Autowireにするんだけど、最初に環境変数の初期化を行いたいし、
このクラスも@Autowireにしたい
そんなとき、いろいろ方法があるのだろうけど、自分が見つけたうまくいったパターンをメモしておく
やり方
コンストラクタの引数を以下のように書く
// コンストラクタ public 環境変数を利用するクラス名(@Autowired 自作の環境変数のクラス名 変数名) { }
そういえば、resourcesフォルダに格納されたファイルのパスって プロジェクトのルートから相対的に呼びたいけど、どうするだろうか。
これで、初期化時に環境変数を利用してくれるコンストラクターを書くことができ、テスト時は、環境変数を任意に変更してテストがしやすくなる。
その時に使うのが、springが提供しているClassPathResource?クラスだ。