読み込む方法
コンフィグレーションファイルに@PropertySourceアノテーションを付加します。
@Configuration
@PropertySource("classpath:application.properties")
public class HogeConfig {
...
}
利用したいクラスでpropertiesファイルに記載の項目を取得する際はValueアノテーションを付加します。
@Service
public class HogeService {
@Value("${foo.bar}")
private String foo;
....
}
${…}の形の記法はPropertySourcesPlaceholderConfigurerによってプロパティのkeyであると解釈されます。
application.propertiesに
foo.bar=hoge
という記載があれば、変数fooに”hoge”がinjectされます。
dynamicに読み込む方法
この方法だと一度読み込まれたpropertiesはキャッシュされ、ファイルを書き換えてからモジュールの再起動が必要になってしまいます。
そこで動的に値を取得する方法を探していたところ、やはりstackoverflowはすごい。
Resource resource = new ClassPathResource("/application.properties");
Properties props = PropertiesLoaderUtils.loadProperties(resource);
String foo = props.getProperty("foo.bar");
これで動的にプロパティが取得できます。
ただし、毎回読み込むのでパフォーマンスは多少劣化すると思われるので、
頻繁に値を変更しそうなところのみに限定するのが良さそうです。


コメント
appilication.propertiesになってますよー
ご指摘ありがとうございます!m(_ _)m
修正しました