my.servers[0]=dev.bar.com
my.servers[1]=foo.bar.com
my.servers[2]=dev.bar.com
my.servers[3]=foo.bar.com
my.servers[4]=dev.bar.com
my.servers[5]=foo.bar.com
my.servers[6]=dev.bar.com
my.servers[7]=foo.bar.com
my.servers[8]=foo.bar.com
my.servers[9]=foo.bar.com
my.servers[10]=foo.bar.com
Spring Boot 에서 Map properties 를 가져올 때, Java 클래스에서는 Map<String, Object>
자료형으로 받아온다.
이 때, Key 값이 String 자료형 이므로 0-1-2-...-10 순서로 가져오는 것이 아닌 '0'-'1'-'10'-'2'-...'9' 순서로 가져오게 된다.
의도한 순서와 어긋나기 때문에 순서가 중요한 property 의 경우 문제 상황이 발생한다.
my.servers[00]=dev.bar.com
my.servers[01]=foo.bar.com
my.servers[02]=dev.bar.com
my.servers[03]=foo.bar.com
my.servers[04]=dev.bar.com
my.servers[05]=foo.bar.com
my.servers[06]=dev.bar.com
my.servers[07]=foo.bar.com
my.servers[08]=foo.bar.com
my.servers[09]=foo.bar.com
my.servers[10]=foo.bar.com
String 자료형의 sort 순서에 맞게 Key 값을 조정한다.
*.properties
# primitive 자료형
my.servers=dev,foo,bar
# primitive 자료형, multiline
my.servers=dev\n
foo\n
bar
# object 자료형
my.servers=[{id=foo, name=foo server}, {id=bar, name=bar server}, {id=dev, name=dev server}]
.yaml
my:
servers:
-
id: foo
name: foo server
-
id: bar
name: bar server
-
id: dev
name: dev server
순서가 중요한 property 는 Array 로 받아온다.