我正在使用@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")
是存储库的本地副本。这行得通,但这只是一个硬编码的解决方案。
有更清洁的解决方案吗?
答案 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