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/45704466/

相关文章:

spring - 直接调用@Bean注解的方法。改用依赖注入(inject)

forms - Spring MVC - 部分绑定(bind)到表单时如何不丢失字段值

spring - 忽略 Jackson OnDemand 中的嵌套属性

spring-boot - H2DB 的默认 URL 和凭据?

java - 如何跳过 Spring Quartz Scheduler 中的特定作业执行

java - 使用 Postgresql 的 Spring Boot 的 Tomcat 配置

java - Spring bean 多次加载

java - 启用 ssl 和 Elastic Beanstalk 的 Spring boot - 找不到文件

spring-boot - Spring Boot Kafka 消费者抛出没有名为 'kafkaListenerContainerFactory' 的 bean 可用

java - Java中的Gson Json解析