找不到将 spring.config.location 的行为恢复到较旧的 Springboot 版本的原因



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

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

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

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

这些是我目前能发现的一些差异。但是,不确定导致此行为更改的原因,请提供帮助。

我怀疑是使用@PropertySource导致了行为的差异。@PropertySource("classpath:application.properties")将从类路径上找到的第一个application.properties资源装入属性,而不考虑spring.config.locationspring.config.additional-location的配置方式。

最新更新