springspring-boot

Using Expressions in Spring application.properties file


Can expressions be used as a right-hand-side value in a Spring application.properties file?

For example, something like this:

logging.level.com.acme=#{'${MY_RUN_ENV}'=='PROD'?'WARN':'DEBUG'}

That, specifically, does not work. But, I'm wondering if I can do something similar to what's intended there


Solution

  • No you can not use SpEL within properties files.

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

    You can however use placeholders within properties files, eg:

    app.name=MyApp
    app.description=${app.name} is a Spring Boot application
    

    For your use case, you should look at the profile-specific configuration mechanism.

    Which allows you to load different config based on an environment profile.