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

标签 spring spring-boot

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

例如,像这样:

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

具体来说,这不起作用。但是,我想知道我是否可以做一些与预期类似的事情

最佳答案

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

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

但是您可以use placeholders在属性文件中,例如:

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

对于您的用例,您应该查看 profile-specific configuration机制。

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

关于spring - 在 Spring application.properties 文件中使用表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56985947/

相关文章:

java - 如何在 Spring 使用 Autowiring 概念?

JSON.stringify() 函数正在用空对象替换文件对象

spring - Spring Boot Repository Annotated Interface 中的多个数据源

security - Spring Boot 2.0 : how to disable security for a particular endpoint

java - 如何根据计划订阅允许/禁止租户在 Multi-Tenancy 系统中访问API

java - 用 Spring 注入(inject)字符串的快捷方式

mysql - 使用 Spring Boot JPA 在数据库中插入多行

java - Spring @Autowired 链和常规 'new XYZ()' 实例化

java - 具有 Activity 配置文件的 Spring Batch 仍在寻找 Application.properties

java - 如何调用logback.xml文件中的application.properties值?