0

我有许多我想通过文件提供的属性(例如 google api 密钥) (请参阅此处spring-cloud.properties的 spring cloud 本地配置连接器文档)。

这是我所做的:

1)将我的google api密钥放入spring-cloud.properties文件中,如下所示:

spring.cloud.appId:    bignibou
spring.cloud.database: mysql://root:root@localhost:3306/bignibou_dev
google_api.key: AIzaSyBjHuQsAxxx

2)尝试如下加载:

@Configuration
@Profile({ Profiles.DEFAULT, Profiles.CLOUD, Profiles.DEV, Profiles.CAPACITY_TEST })
public class CloudConfiguration extends AbstractCloudConfig {

    @Bean
    public ApplicationInstanceInfo applicationInfo() {
        return cloud().getApplicationInstanceInfo();
    }

}

...

@Autowired
private ApplicationInstanceInfo applicationInstanceInfo;

但是似乎properties我的变量applicationInstanceInfo总是空的......

见源代码:空地图

这是预期的行为吗?本地配置连接器如何用于检索任意属性,例如 google api 密钥(在开发和云中将有所不同)。

提前致谢,

4

1 回答 1

2

如果您希望可以从本地文件中解析某些内容并使用环境变量覆盖,只需使用占位符,例如

@Value("${GOOGLE_API_KEY:${google_api.key}}
private String googleKey;

并将其放入常规的外部属性文件中(application.properties与 Spring Boot 一起使用,或者只是@PropertySource(...)在您的@Configuration.

于 2014-10-14T12:11:13.650 回答