Optional environment variables in Spring app

前端 未结 1 1581
情歌与酒
情歌与酒 2021-01-07 18:04

In my Spring Boot app\'s application.properties I have this definition:

someProp=${SOME_ENV_VARIABLE}

But this is an optional

相关标签:
1条回答
  • 2021-01-07 18:41

    Provide a default value in the application.properties

    someProp=${SOME_ENV_VARIABLE:#{null}}
    

    When used like @Value("${someProp}), this will correctly evaluate to null. First, if SOME_ENV_VARIABLE is not found when application.properties is being processed, its value becomes the string literal "#{null}". Then, @Value evaluates someProp as a SpEL expression, which results in null. The actual value can be verified by looking at the property in the Environment bean.

    This solution utilizes the default value syntax specified by the PlaceholderConfigurerSupport class

    Default property values can be defined globally for each configurer instance via the properties property, or on a property-by-property basis using the default value separator which is ":" by default and customizable via setValueSeparator(String).

    and Spring SpEL expression templating.

    From Spring Boot docs on externalized configuration

    Finally, while you can write a SpEL expression in @Value, such expressions are not processed from Application property files.

    0 讨论(0)
提交回复
热议问题