在 Boot 2.2.0 之前,如果您使用过spring-cloud-starter
并且在您bootstrap.yml
设置的spring.config.name
Boot 中,将正确加载属性中指定的属性文件。从 Boot 2.2.0 开始,这不再起作用。
我已追踪到提交 d92c2f70230a6e30ccb5d5b51315062505ff74b6 中添加的这一行的重大更改
我上面描述的情况实际上是这里定义defaultProperties
的一个实例。ExtendedDefaultPropertySource
该sources
属性是一个复合属性,spring.config.name
在本例中包含 的值。然而,在ConfigFileApplicationListener.replaceDefaultPropertySourceIfNecessary
代码中只是调用.getSource
构造新的defaultProperties
,因此我们丢失了组合中的属性,因此spring.config.name
永远不会检索该属性。
对于重现该问题的示例,您可以查看此测试。