I am using @PropertySource and PropertySourcesPlaceholderConfigurer to load my properties file:
@Configuration
@PropertySource("classpath:app.properties")
class MyApp {
    @Bean
    public PropertySourcesPlaceholderConfigurer PropertySourcesPlaceholderConfigurer() {
        return new PropertySourcesPlaceholderConfigurer();
    }
}
In app.properties, I would like to have:
database.dataSource.url=jdbc:postgresql://localhost:${db-port:5432}/mydb
Here, the port of the database is either resolved from the property db-port, or defaulted to 5432.
This would allow me to spawn my application with the -Ddb-port=9876 flag if necessary. If this flag is not set, the default port as written in app.properties should be taken.
 
    