在Spring Boot yml中获取系统环境变量的值,可以通过${变量名}
语法解决。具体步骤如下:
- 在 yml 文件中定义需要用到的变量名,例如:
yaml
server:
port: ${SERVER_PORT:8080}
上述代码中,${SERVER_PORT:8080}
表示获取系统环境变量 SERVER_PORT
的值,如果该变量不存在则默认值为 8080
。
- 设置环境变量。在 Windows 中可以使用命令
set
设置环境变量:
bash
set SERVER_PORT=8888
在 Linux / Unix 系统中可以使用命令 export
设置环境变量:
bash
export SERVER_PORT=8888
- 在 Spring Boot 应用程序中使用获取到的环境变量,例如:
java
@Value("${server.port}")
private int serverPort;
上述代码中,@Value("${server.port}")
表示获取 yml 文件中定义的 server.port
变量的值,将其注入到变量 serverPort
中。此时,serverPort
的值为 8888
。
示例 1:
假设在 yml 文件中有以下代码:
logging:
level:
org.springframework.web: ${LOG_LEVEL:info}
其中 ${LOG_LEVEL:info}
表示获取环境变量 LOG_LEVEL
的值,如果该变量不存在则默认值为 info
。
设置环境变量为:
set LOG_LEVEL=debug
在应用程序中,可以使用以下方式获取 logging.level.org.springframework.web
的值:
@Value("${logging.level.org.springframework.web}")
private String loggingLevel;
此时,loggingLevel
的值为 debug
。
示例 2:
假设在 yml 文件中有以下代码:
spring:
profile:
active: ${SPRING_PROFILES_ACTIVE:dev}
其中 ${SPRING_PROFILES_ACTIVE:dev}
表示获取环境变量 SPRING_PROFILES_ACTIVE
的值,如果该变量不存在则默认值为 dev
。
设置环境变量为:
set SPRING_PROFILES_ACTIVE=prod
在应用程序中,可以使用以下方式获取 spring.profile.active
的值:
@Value("${spring.profile.active}")
private String activeProfile;
此时,activeProfile
的值为 prod
。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Springboot yml如何获取系统环境变量的值 - Python技术站