为什么Spring Client无法获得Spring Config Server属性?

时间:2019-02-15 15:33:13

标签: spring

我有一个const Page = (props) => { return ( <MyComponent size="regular"> {/* Some other HTML elements*/} <MyComponent size="small"> ... </MyComponent> </MyComponent> ); }; ,运行着@SpringBootApplication配置文件,还有一个弹簧配置服务器,

production

我无法从服务器加载属性{"name":"config-client","profiles":["production"],"label":null,"version":"97611975e6ddb87c7213e18ddbe203ab6ae5485d","state":null,"propertySources":[{"name":"http://git/scm/abm/abm-settings.git/application-production.yml","source":{"my.pretty.property.id":21}}]} (它们始终为null),我正在使用

my.pretty.property.id

我的bootstrap.yml是

@Getter
@Setter
@Component
@ConfigurationProperties(prefix = "my.pretty.property")
public class MyProperties {
    private String id;
}

build.gradle包含以下内容:

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

我的客户端应用程序通常是构建和部署的,我缺少什么?

2 个答案:

答案 0 :(得分:3)

来自Spring Cloud Config

  

HTTP服务具有以下形式的资源:

     

/ {application} / {profile} [/ {label}]
  /{application}-{profile}.yml
  /{label}/{application}-{profile}.yml
  /{application}-{profile}.properties
  /{label}/{application}-{profile}.properties

正如您提到的,您的应用程序正在production配置文件下运行-因此,Spring将尝试查找文件<cloud-config-server-url>/application-production.yml并加载application.properties之外的文件。但是您的属性位于application-integration.yml中,并且您不使用integration个人资料。

因此,解决方案是在配置中使用integration配置文件或创建application-production.yml。服务器。

答案 1 :(得分:0)

The following config is right, but spring.cloud.config.enabled should be true, I didn't overrride it in my production environment