【发布时间】:2026-02-08 12:30:01
【问题描述】:
我有一个 Spring Boot 应用程序(在 Docker 中运行,但我认为这无关紧要),我按如下方式启动:
java -Dspring.profiles.active=development,docker -jar /app.jar
我的 Spring Boot development 配置文件包含一个条目:
service.baseurl: http://foo
我的 Spring Boot docker 配置文件包含一个条目:
service.baseurl: http://bar
我对 Spring 配置文件如何工作的理解是,当有多个配置文件时,值是从找到的 LAST 值中提取的(请参阅https://*.com/a/51565684/2117355)。基于此,我希望我的应用程序加载http://bar 作为service.baseurl 的值。这实际上是在我的开发机器上发生的事情。
但是,在我队友的机器上,为service.baseurl 加载的值是http://foo。
这是一个真正令人头疼的问题。我队友的机器上是否有某些设置或版本导致她在这里得到不同的结果?
不管怎样,我们都在奔跑:
- Java JDK 16.0.2
- Spring Boot 2.5.4
- Gradle 7.2
- Docker 20.10.8
【问题讨论】:
标签: java spring spring-boot spring-profiles