提问者:小点点

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


我有一个外部属性文件,该文件存在于哈希科普中,并且正在使用@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个答案

匿名用户

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

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

匿名用户

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

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

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