应用程序从外部化的credentials.properties文件中读取主密码:

@PropertySources({
        @PropertySource("file:${user.home}/.app/credentials.properties"),
        @PropertySource(value = "classpath:application.properties")
})

应用程序属性application.properties:

spring.profiles.active=@activatedProperties@

从活动配置文件的application-{PROFILE}.properties文件加载.

如何覆盖位于file:${user.home}/.app/credentials.properties中但仅针对特定配置文件(开发)的设置?

我会在IDE中更改设置值,而不是在文件系统中.

推荐答案

根据Spring Documentation,配置数据,如application.propertiesapplication-develop.properties文件,总是优先于@PropertySource.

Spring Boot使用非常特殊的PropertySource顺序,即 旨在允许合理地凌驾于价值之上.后来的财产 源可以覆盖以前的源中定义的值.消息来源是 按以下顺序考虑:

  1. 默认属性(由设置指定 SpringApplication.setDefaultProperties).

  2. 你的@Configuration节课上有@PropertySource条注解.

  3. 配置数据(如application.properties个文件).

    ...

因此,在application-develop.properties中指定的任何值都将覆盖credentials.properties中的相应值.

Java相关问答推荐

是否有一种格式模式,可以在除0之外的数字前面有正负符号?

无法在Java中将hhmmss格式的时间解析为LocalTime

是否需要关闭Executors返回的执行器.newVirtualThreadPerTaskExecutor()?

int Array Stream System. out. print方法在打印Java8时在末尾添加% sign

Java Streams在矩阵遍历中的性能影响

SQlite for Android无法使用json_group_array/json_object

JUnit—如何模拟局部变量对象方法调用

@ IdClass with @ Inheritance(策略= InheritanceType. SINGLE_TABLE)

在bash中将数组作为Java程序的参数传递

在Eclipse中数组的可空性

Docker不支持弹性APM服务器

为什么同步数据块无效?

如何在不删除Java中已有内容的情况下覆盖文件内容?

STREAMS减少部分结果的问题

在实例化中指定泛型类型与不指定泛型类型之间的区别

如何使用Java对随机生成的字母数字优惠券代码进行过期设置

JavaFX:为什么我的ComboBox添加了一个不必要的单元格的一部分?

如何使用java区分以下结果

UuidGenerator Bean 类型不匹配?

ChromeDriver 版本 117+ 强制另存为对话框 - 如何绕过? (selenium/Java)