为什么弹簧引导程序属性在不同的配置文件中会发生变化?

时间:2019-03-15 09:16:18

标签: java spring

我有一个具有以下属性的spring bootstrap.yml文件

spring.cloud:
  config:
    uri: http://${SERVICE_HOST}/${PROJECT_KEY}-config-server
    enabled: true
    failFast: true

我尝试使配置服务器客户端(由上述道具配置)可以与生产配置文件一起使用,但是在运行时,我的配置服务器客户端被禁用了:

ConfigClientProperties properties = applicationContext.getBean(ConfigClientProperties.class);
log.info("Profile is " + properties.getProfile());
log.info("Enabled is " + properties.isEnabled());

打印

Profile is production

Enabled is false

测试个人资料中,一切正常。

如何在生产环境中启用配置服务器客户端?

3 个答案:

答案 0 :(得分:2)

似乎您的yml格式不正确(spring.cloud)。来自本章下的official documentation  The Bootstrap Application Context

spring: cloud: config: uri: ${SPRING_CONFIG_URI:http://localhost:8888}

尝试将spring.cloud更改为上述示例,让我知道是否有帮助。

答案 1 :(得分:0)

我们用于部署应用程序的马拉松应用程序覆盖了它们。春天不会覆盖道具

答案 2 :(得分:-1)

默认情况下,maven或gradle使用默认配置文件(在正常情况下,默认配置文件为dev)。 我要使用其他配置文件构建的春季靴,可以使用:

对于Maven:

mvnw -Pprod spring-boot:run OR ./mvnw -Pprod spring-boot:run

对于gradle:

gradlew -Pprod bootRun OR ./gradlew -Pprod bootRun

,并且必须在项目中声明带有prod名称的配置文件(例如.yml文件)。