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

我可以在应用程序特定的配置文件属性上覆盖外部PropertySource中的值吗

衡丰茂
2023-03-14

我有一个外部属性文件,该文件存在于哈希科普中,并且正在使用@PropertySource注释将其拉到Spring Boot。在我的Spring启动应用程序中,有特定于配置文件的应用程序.properties文件。现在我想要的是属性源配置优先于这些特定于配置文件的配置。

我已经通读了Spring Boot外部配置文档-https://docs.spring.io/spring-boot/docs/2.1.13.RELEASE/reference/html/boot-features-external-config.html其中提到Property tySource配置是最少的偏好

@PropertySource(value="${path}",ignoreResourceNotFound = true)
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

在我的application.properties档案里-

name=value

在我的外部配置文件中-

name=updatedNewValue

我想要的是检索' updatedNewValue ',而不是我得到' Value '。

是否可以覆盖它?

共有2个答案

陈胤
2023-03-14

如果要使用外部配置覆盖特定配置文件的属性,外部文件/源必须是特定于配置文件的:< code > properties-profile . properties (如果是基于文件的)

您提到了Hashicorp…不确定它是Vault还是Consul,但对于Vault,您可以使用以下命令定义特定于配置文件的值:

保险库写入机密/应用程序,配置文件 foo=bar

常献
2023-03-14

特定配置文件优先于默认配置文件。文件中可以有placename=value。属性(或properties.yml)和另一个名为file-的文件。带有占位符placename=value的属性(test、prod、stage是常见选项)。

请记住在运行应用程序之前将其配置文件作为配置提供。

 类似资料:
  • 我想在重新启动时通过外部配置文件覆盖Spring Boot应用程序中的几个配置。 我正在使用的内容:java-jar-dspring.profiles.active=${ENV}my-application.jar 这将在应用程序启动期间加载特定于配置文件的应用程序属性。让我们假设我有一个问题,我需要更改我的应用程序中的配置,我不想重新构建我的应用程序与更改的属性,我想要实现的是,我提供一个外部属

  • 我已经建立了一个spring boot项目。 在其中,我有一个属性类,如下所示: abc的内容。属性文件如下所示: 在项目中,在资源文件夹(和测试资源文件夹)中,我提供了一个abc.properties文件。一旦构建并运行,程序就可以按预期访问abc.properties文件中的属性(也可以在测试中正确访问)——它们很好地映射到我的url映射。 到现在为止,一直都还不错。 但是,我在属性类中引用的

  • 我正在尝试在外部tomcat上运行camel应用程序。有2个应用程序。属性文件存在于我的项目中,一个在src/main/resources下,另一个在src/test/resources下。当我使用maven install命令创建war文件时,它使用应用程序。来自src/main/resources的属性文件(这是必需的),但当我在eclipse中使用tomcat启动应用程序时,它正在使用app

  • 我正在寻找解决这个问题的方法。 我有几个属性文件(application.properties、application realdb.properties)。假设我从“realdb”spring概要文件开始。现在,我想在部署到tomcat上时重写我的属性。我决定将文件放在/lib文件夹中,因为它自动位于类路径上,我没有找到更好的(即特定于应用程序的类路径文件夹) 所以我可以在那里申请。属性,只要我

  • 在spring boot中,我有以下配置文件:application-email.yaml

  • 问题内容: 我有一个Spring应用程序,到目前为止运行良好。现在,我希望属性文件位于外部配置文件夹中,而不是在打包的jar中,而无需重新打包即可更改内容。这就是我得到的: 问题答案: 如果将其放置在名为spring的目录中的类路径中的某个位置(相应地更改名称/目录),则可以使用 这将指向web-inf / classes / config / springcontext.properties