在Spring Cloud Config中使用@PropertySource-Git

时间:2019-05-21 12:19:45

标签: spring spring-boot spring-cloud spring-cloud-config

我正在使用@PropertySource配置Configuration类:

@Configuration
@PropertySource("classpath:/mongo-${env}.properties")
public class MongoConfiguration {

mongo-$ {env} .properties文件位于类路径中。 效果很好。

我现在正在使用Spring Cloud Config将配置外部化到Git: 所有application.yml文件都已迁移。 但是我不知道是否有可能,以及如何外部化属性文件,例如@PropertySource中声明的属性文件。

我做了什么: 我试图在Git中将mongo-prod.properties重命名为application-prod.properties。 然后我将@PropertySource更改为:

@PropertySource("file:///C://.../config-repo/application-prod.properties")

是存储库的本地副本。这行得通,但这只是一个硬编码的解决方案。

有更清洁的解决方案吗?

1 个答案:

答案 0 :(得分:0)

您可以使用@ConfigurationProperties批注加载属性假设您已正确设置配置服务器。

示例 假设您的服务名称是客户服务,并且想要从配置服务器获取属性文件。

第1步在git repo中添加客户属性。您还可以添加特定于环境的属性,例如

customer-qa.properties ,customer-dev.properties

现在要加载这些属性

@Component
@ConfigurationProperties("customer-service")
@Data
public class CustomerServiceConfigurations {

    private String somePropertyname;

} 

有关更多详细信息,请检查下面的示例Config Server