将@PropertySource 与 Spring 云配置一起使用 - Git

Use of @PropertySource with Spring Cloud Config - Git

我正在使用@PropertySource 配置配置 class:

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

mongo-${env}.properties 文件位于 class 路径中。 这很好用。

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

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

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

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

是否有更清洁的解决方案?

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

例子 假设您的服务名称是 customer-service 并且想从配置服务器获取属性文件。

第 1 步在您的 git 存储库中添加 customer-properties。您还可以添加特定于环境的属性,例如

customer-qa.properties ,customer-dev.properties

现在加载这些属性

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

    private String somePropertyname;

} 

更多详情请查看下面的例子Config Server