在Spring中使用表达式application.properties文件

Dar*_* X. 5 spring spring-boot

表达式可以用作Spring application.properties文件中的右侧值吗?

例如,像这样:

logging.level.com.acme=#{'${MY_RUN_ENV}'=='PROD'?'WARN':'DEBUG'}
Run Code Online (Sandbox Code Playgroud)

也就是说,具体地说,也不能正常工作.但是,我想知道我是否可以做类似于那里的目的

Mag*_*nus 7

不,您不能在属性文件中使用SpEL.

最后,虽然您可以在@Value中编写SpEL表达式,但不会从Application属性文件处理此类表达式.

但是,您可以在属性文件中使用占位符,例如:

app.name=MyApp
app.description=${app.name} is a Spring Boot application
Run Code Online (Sandbox Code Playgroud)

对于您的用例,您应该查看特定于配置文件的配置机制.

这允许您根据环境配置文件加载不同的配置.