Spring - 是否可以在属性文件中递归地解析属性(例如环境变量)?

Spring - Is it possible to resolve properties (such as environment variables) recursively in properties file?

我正在使用 @PropertySourcePropertySourcesPlaceholderConfigurer 加载我的属性文件:

@Configuration
@PropertySource("classpath:app.properties")
class MyApp {
    @Bean
    public PropertySourcesPlaceholderConfigurer PropertySourcesPlaceholderConfigurer() {
        return new PropertySourcesPlaceholderConfigurer();
    }
}

app.properties,我想要:

database.dataSource.url=jdbc:postgresql://localhost:${db-port:5432}/mydb

这里数据库的端口要么是从属性db-port解析出来的,要么默认是5432。

这将允许我在必要时使用 -Ddb-port=9876 标志生成我的应用程序。如果未设置此标志,则应采用 app.properties 中写入的默认端口。

有可能,根据https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html and