将@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
我正在使用@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