SpringBoot1.4.2を利用してWebアプリケーションを開発しています。
様々な設定値を複数のYAMLファイルに定義し、@ConfigurationPropertiesを利用してJava側で利用したいのですが、
application.yaml以外のYAMLファイルを読み込む方法についてご教授下さい。
classpath下のファイル構成は例として以下となります。
- application.yaml
- myconf.yaml
application.yaml -------------------------------- spring: datasource: url: "jdbc:mysql://localhost:3306/scheme" username: "xxx" password: "yyy" driver: "org.gjt.mm.mysql.Driver" -------------------------------- myconf.yaml -------------------------------- settings: id: 12345 --------------------------------
java
1@ConfigurationProperties(prefix="settings") 2public class MyConf { 3 private String id; 4 public String getId() { 5 return id; 6 } 7 public void setId() { 8 this.id = id; 9 } 10}
この場合にsettingsの値が読み込まれず、getId()はnullとなってしまいます。
暫定対応①
@ConfigurationPropertiesにlocationsでファイルを指定すると読み込まれました。
java
1@ConfigurationProperties(prefix="settings", locations="classpath:myconf.yaml")
暫定対応②
myconf.yamlに分割せず、application.yamlに全ての設定値を記載した場合にも読み込まれました。
ですが
・SpringBoot1.4以降(?)ではlocationsがDeprecatedになっている。
・application.yamlを肥大化させたくないのでYAMLファイルは分割したい。
という理由で上記以外の方法を模索している状況です。
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。