例えば、下記のような設定だったとして、
application-37.yml
file:
37:
file-name: hoge
application.yml
spring:
profiles:
active: 37
File37Context.java
@ConfigurationProperties(prefix = "file.37")
pulic class File37Context {
String fileName;
// setter,getter
}
spring-boot 2.0.6
では fileName
が取得できたのに、
spring-boot 1.5.17
では null
になってしまった。
どうやら 37
の部分が配列の数字?と認識されたような動きで、
File37Context.java
@ConfigurationProperties(prefix = "file[37]")
pulic class File37Context {
String fileName;
// setter,getter
}
と修正すると spring-boot 1.5.17
でも値が取得できるようになった。
数字だけってのがダメっぽい。
気持ち悪いので、
application-37.yml
file:
type37:
file-name: hoge
File37Context.java
@ConfigurationProperties(prefix = "file.type37")
pulic class File37Context {
String fileName;
// setter,getter
}
って感じで数字以外を付与してあげることで、最終的に解決。
問題がjavaなのかspringなのかtomcatなのかで最初は全然わからなくてちょっと時間かかった。。。
仕事で使わなきゃいけない動作環境がjdk1.6ってことでなんだかわけわかんなくなるような作り方してるけど、なんだかなぁ。。。
こんなので嵌る人って他にいるのかなぁ。。。