无法找到将 spring.config.location 的行为恢复到较旧的 Spring Boot 版本的原因

Cant find the reason that reverts the behavior of spring.config.location to older Springboot versions

我们有一个部署环境,它使用 to/uses -spring.config.location=app.properties 属性 来提供配置位置。就像这个 & this one github-br 中提到的,我不知道对于我当前的 spring 引导版本,即 2.2.5.RELEASE,属性行为已经改变。正如预期的那样,我们必须使用 spring.config.additional-location 以便它也从 jar 中选择默认值。

然而,问题是对于同一环境中具有相同 spring 启动版本的另一个应用程序,即 2.2.5.RELEASE spring.config.location 的行为是旧的方式。所以我仍然想知道这是怎么发生的,例如。由于其他应用程序具有而我们的应用程序没有的其他依赖项?

我不知道给出什么代码示例,因为我不知道什么代码导致行为恢复到旧版本。但是,我可以看到这两个应用程序的实现之间存在一些差异:

  1. 另一个应用程序使用@Value 注释。我们的应用程序使用 @ConfigurationProperties 加载 属性 值。我尝试使用它,但配置位置行为没有恢复。
  2. 在某些 类 上,他们使用了 @PropertySource(value = "classpath:application.properties")
  3. 其他应用程序相对较旧,他们一直在升级 spring 引导版本,如果有任何不同的话。

这些是我目前可以发现的一些差异。但是不确定是什么导致了这种行为变化,请帮忙。

我怀疑是 @PropertySource 的使用导致了行为上的差异。 @PropertySource("classpath:application.properties") 将从在类路径中找到的第一个 application.properties 资源加载属性,而不管 spring.config.locationspring.config.additional-location 是如何配置的。