application.properties とは?
Java のフレームワークである Spring Boot で設定情報をキーバリュー形式で記載できるファイルのこと。この設定情報は JVM のシステムプロパティとして設定される。
application.properties
sample.properties=sample
java sample
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
@Component
public class SampleApplication {
private final Environment env;
public DemoApplicationRunner(Environment env) {
this.env = env;
}
public String sample() {
return env.getProperty("sample.properties");
}
}
上記の例では "sample" という文字列を取得している。
読み込むファイルを選択できる
application-(環境名).properties と命名し、JVM のプロパティ spring.profiles.active に環境名を設定することで、読み込むファイルを選択できる。
その際、環境名を付与していないファイルは常に読み込まれる。
以下の構成において、spring.profiles.active=dev とした場合、
・application.properties
・application-dev.properties
の 2 つが読み込まれる
ディレクトリ構成
|--src/main
| |--java
| | :
| |--resources
| | |--application.properties
| | |--application-dev.properties
| | |--application-prod.properties
application.properties が常に読み込まれることを利用して、spring.profiles.active を設定することもできる。
application.properties
spring.profiles.active=dev
環境変数を使用した application.properties の切り替え
${ENVIRONMENT_VARIABLE} とすることで application.properties では環境変数を使用できる ( : を使用してデフォルト値を設定できる )。
application.properties
spring.profiles.active=${SPRING_PROFILES_ACTIVE:defaultEnvName}
環境変数を適切に設定しておくことで、プログラムの起動時に毎回プロパティを設定する必要がなくなる。
reference