在 yml 的键名中使用时的 $ 消失了
The $ when used in a key name in yml disappears
我正在 springboot 应用程序中使用 application.yml 并加载地图。不幸的是,每当我在键中有一个 $ 字符时,它就会消失。 key/value 对在那里,只是没有任何 $ 符号。我试过各种方法试图逃脱这个角色,但似乎没有任何效果。我看不到任何说明 $ 是特殊字符的文档 - 除了类路径符号之外?这是这里发生的事情吗?如果是,我该如何逃避它?
first:
second:
third:
'aaa': "aaa"
'$bbb': "bbb"
'$ccc': "ccc"
$$yy$y: "yyyy"
在本例中,地图定义为
private Map<String, String> third;
这个有效:
first:
second:
third:
"[aaa]": "aaa"
"[$bbb]": "bbb"
"[$ccc]": "ccc"
"[$$yy$y]": "yyyy"
{aaa=aaa, $bbb=bbb, $ccc=ccc, $$yy$y=yyyy}
@SpringBootApplication
@EnableConfigurationProperties
public class So71584675Application {
public static void main(String[] args) {
SpringApplication.run(So71584675Application.class, args);
}
@Bean
ApplicationRunner runner(Props props) {
return args -> {
System.out.println(props.third);
};
}
}
@Component
@ConfigurationProperties(prefix = "first.second")
class Props {
Map<String, String> third;
Props(Map<String, String> third) {
this.third = third;
}
Map<String, String> getThird() {
return this.third;
}
void setThird(Map<String, String> third) {
this.third = third;
}
}
我正在 springboot 应用程序中使用 application.yml 并加载地图。不幸的是,每当我在键中有一个 $ 字符时,它就会消失。 key/value 对在那里,只是没有任何 $ 符号。我试过各种方法试图逃脱这个角色,但似乎没有任何效果。我看不到任何说明 $ 是特殊字符的文档 - 除了类路径符号之外?这是这里发生的事情吗?如果是,我该如何逃避它?
first:
second:
third:
'aaa': "aaa"
'$bbb': "bbb"
'$ccc': "ccc"
$$yy$y: "yyyy"
在本例中,地图定义为
private Map<String, String> third;
这个有效:
first:
second:
third:
"[aaa]": "aaa"
"[$bbb]": "bbb"
"[$ccc]": "ccc"
"[$$yy$y]": "yyyy"
{aaa=aaa, $bbb=bbb, $ccc=ccc, $$yy$y=yyyy}
@SpringBootApplication
@EnableConfigurationProperties
public class So71584675Application {
public static void main(String[] args) {
SpringApplication.run(So71584675Application.class, args);
}
@Bean
ApplicationRunner runner(Props props) {
return args -> {
System.out.println(props.third);
};
}
}
@Component
@ConfigurationProperties(prefix = "first.second")
class Props {
Map<String, String> third;
Props(Map<String, String> third) {
this.third = third;
}
Map<String, String> getThird() {
return this.third;
}
void setThird(Map<String, String> third) {
this.third = third;
}
}