当前位置: 首页 > 知识库问答 >
问题:

在Spring Cloud配置中使用@PropertySource-Git

罗昕
2023-03-14

我正在使用@PropertySource配置一个配置类:

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

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

我所做的:我尝试在Git中将mongo-prod.properties重命名为application-prod.properties。然后我将@PropertySource更改为:

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

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

有没有更干净的解决方案?

共有1个答案

诸葛彦
2023-03-14

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

示例假设您的服务名为customer-service并希望从配置服务器获取属性文件。

步骤1在git repo中添加customer-properties。您还可以添加特定于环境的属性,如

customer-qa.properties ,customer-dev.properties

现在要加载这些属性

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

    private String somePropertyname;

} 

有关更多详细信息,请查看下面的配置服务器示例

 类似资料:
  • 我正在尝试设置一个SpringCloudConfig服务器,该服务器使用ssh私钥的自定义位置。我需要为密钥指定自定义位置的原因是,运行应用程序的用户没有主目录。。所以我没有办法使用默认的我的密钥的目录。我知道可以选择创建一个只读帐户,并在配置中提供用户/密码,但ssh方式更干净 有什么方法可以设置这个吗?

  • 我有一个使用SpringCloud配置的SpringBoot应用程序,但我想在SpringBootApps引导程序中加密SpringCloud配置密码。yml文件。有办法做到这一点吗?下面是一个例子。 Spring Boot应用程序bootstrap.yml

  • 我有一个micronaut项目,我想有一个私有数据(如数据库连接等)的未版本化配置文件 此信息必须通过@Properties注释加载,但由于将有一个以上的. yml(也将有至少一个application.yml)y希望能够提供文件的路径到@Properties,以便能够区分在哪里查找属性。 由于这是我的第一个micronaut项目,我有点迷路了,但以springstart为例,我想做的是这样的事情

  • 本文向大家介绍SpringCloud用Zookeeper搭建配置中心的方法,包括了SpringCloud用Zookeeper搭建配置中心的方法的使用技巧和注意事项,需要的朋友参考一下 本文介绍了SpringCloud +Zookeeper完成配置中心,分享给大家,具有如下: 使用场景 项目配置更改不需要打包,重启 提供配置文件的可视化界面 和springcloud快速整合 为什么使用zookeep

  • 这种方法适用于xml配置 但我想使用java进行配置。

  • 问题内容: 我有以下配置类: and I have service with property: 我想使用以下命令测试AppConfig配置类时收到错误消息 该问题记录在SPR-8539中 但无论如何,我无法弄清楚如何配置PropertySourcesPlaceholderConfigurer 使其正常工作。 编辑1 这种方法适用于xml配置 但我想使用Java进行配置。 问题答案: 如果使用@P