Spring Boot application.yaml中多个默认环境变量的语法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot application.yaml中多个默认环境变量的语法相关的知识,希望对你有一定的参考价值。

这是Spring Boot application.yaml中多个默认环境变量的正确语法吗?

springframework: ${LOG_LEVEL_1:${LOG_LEVEL_2:WARN}}

我想要的行为是:

  1. 如果设置,请使用LOG_LEVEL_1
  2. 如果未设置LOG_LEVEL_1,则使用LOG_LEVEL_2。
  3. 如果未设置LOG_LEVEL_2,则使用WARN。

但是,当未设置LOG_LEVEL_1时,未应用LOG_LEVEL_2。

我在Spring文档中找不到对此语法的任何引用。

答案

无论是yml还是属性,Spring都允许我们在一行中使用多个环境变量:

yml

spring:
  datasource:
    driver-class-name: ${JDBC_DATASOURCE_DRIVER_CLASS_NAME}
    url: jdbc:oracle:thin:@${DATABASE_HOST}:1521:${DATABASE_SID}

属性

spring.datasource.driver-class-name = ${JDBC_DATASOURCE_DRIVER_CLASS_NAME}
spring.datasource.url = jdbc:oracle:thin:@${DATABASE_HOST}:1521:${DATABASE_SID}

以上是关于Spring Boot application.yaml中多个默认环境变量的语法的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Spring Boot 应用程序 pom 同时需要 spring-boot-starter-parent 和 spring-boot-starter-web?

《02.Spring Boot连载:Spring Boot实战.Spring Boot核心原理剖析》

spring-boot-quartz, 依赖spring-boot-parent

spring-boot系列:初试spring-boot

Spring Boot:Spring Boot启动原理分析

Spring Boot:Spring Boot启动原理分析