Spring Boot 9 設定ファイル
設定ファイル読み込み
フォルダ構成
Test
└src
└main
└java
└myPack
└Test.java
└resources
└confing
└application.properties
└application-aaa.properties
└application-bbb.properties
application.properties (ここでも可)
pom.xml
設定ファイル
※application.properties
spring.profiles.include=aaa
spring.profiles.include=bbb
test1=test
※application-aaa.properties
test2=aaa
※application-bbb.properties
test3=bbb
読み込み
※Test.java
package myPack;
public class Test implements CommandLineRunner {
@Value("${test1}")
private String prm1;
@Value("${test2}")
private String prm2;
@Value("${test3}")
private String prm3;
@Value("${test4}")
private String prm4;
→エラー(test4という設定項目は無い)
@Value("${test4:#{null}}")
private String prm4;
→OK:(test4という設定項目は無い時はnullが設定される)
public static void main(String[] args) {
SpringApplication.run(PostTestApplication.class, args);
}
@Override
public void run(String… arg0) throws Exception {
System.out.println(prm1);
prm1:test
System.out.println(prm2);
prm2:aaa
System.out.println(prm3);
prm3:bbb
}
}
設定ファイルの配置場所をjar(war)の外に出す
自動で読み込まれるアプリケーション配下、config配下の設定ファイルの他に任意の場所をクラスパスに追加する
「Apache Maven 設定方法」参照
なお、この場合アプリケーション配下、config配下の設定ファイルは削除する事
環境毎に設定を変える
フォルダ構成
Test
└src
└main
└java
└myPack
└Test.java
└resources
└confing
└A
└application.properties
└application-aaa.properties
└B
└application.properties
└application-aaa.properties
pom.xml
※pom.xml
<profiles>
<profile>
<id>A</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<resources>
<resource>
<directory>src/main/resources/config/A</directory>
</resource>
</resources>
</build>
</profile>
<profile>
<id>B</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<resources>
<resource>
<directory>src/main/resources/config/B</directory>
</resource>
</resources>
</build>
</profile>
</profiles>
設定ファイル
※A/application.properties
spring.profiles.include=aaa
test1=a
※B/application.properties
spring.profiles.include=aaa
test1=b
プロファイルを指定してビルド
> mvn package -P A
> mvn package -P B