Spring Boot 在 application.yml 中引用环境变量配置端口号
一:前言
在 Spring Boot 项目中,端口号通常会配置在 application.yml 文件里。
最开始学习时,我们可能会直接把端口号写死,例如:
server:
port: 10200
这种写法简单直观,但是如果项目换了环境,比如从本地开发切换到测试环境或生产环境,就可能需要频繁修改配置文件。
为了让配置更加灵活,可以把端口号配置到系统环境变量中,然后在 application.yml 中引用环境变量。
二:原理
Spring Boot 的配置文件支持使用占位符读取环境变量,格式如下:
${环境变量名:默认值}
例如:
server:
port: ${SERVER_PORT:10200}
这行配置的含义是:
- 如果系统中配置了
SERVER_PORT环境变量,就使用环境变量的值; - 如果没有配置
SERVER_PORT,就使用默认值10200。
所以它和直接写死端口号的区别在于:
server:
port: 10200
这是固定端口。
server:
port: ${SERVER_PORT:10200}
这是优先读取环境变量,没有环境变量时再使用默认端口。
三:配置步骤
1. 打开环境变量配置
Windows 中可以按照下面路径打开:
此电脑 -> 右键属性 -> 高级系统设置 -> 环境变量
也可以直接在 Windows 搜索框中搜索:
环境变量
然后选择:
编辑系统环境变量 -> 环境变量
2. 新建环境变量
在环境变量窗口中,可以看到两个区域:
用户变量
系统变量
如果只是自己本地开发使用,建议配置在上面的 用户变量 中。
点击 新建,填写:
变量名:SERVER_PORT
变量值:10200
然后点击 确定 保存。
3. 修改 application.yml
原来的写法:
server:
port: 10200
修改为:
server:
port: ${SERVER_PORT:10200}
这样项目启动时,会优先读取环境变量中的 SERVER_PORT。
4. 重启 IDEA
配置完 Windows 环境变量后,已经打开的 IDEA 可能读取不到最新的环境变量。
所以建议:
关闭 IDEA -> 重新打开 IDEA -> 启动项目
这样 Spring Boot 项目就可以读取到新配置的环境变量了。
四:用户变量和系统变量的区别
环境变量窗口中有上下两个区域:
| 类型 | 作用范围 | 适合场景 |
|---|---|---|
| 用户变量 | 只对当前 Windows 用户生效 | 本地开发、个人项目配置 |
| 系统变量 | 对整台电脑所有用户生效 | Java、Maven 等公共工具配置 |
简单来说:
- 自己开发项目使用,配置到 用户变量 就可以;
- 像
JAVA_HOME、MAVEN_HOME这种公共工具路径,更适合配置到 系统变量。
如果用户变量和系统变量中都配置了同名变量,例如都叫 SERVER_PORT,容易造成混淆,所以不建议重复配置同名变量。
五:总结
在 application.yml 中引用环境变量,可以让配置更加灵活。
推荐写法:
server:
port: ${SERVER_PORT:10200}
它的意思是:优先使用环境变量 SERVER_PORT,如果没有配置,就使用默认端口 10200。
相比直接写死端口号,这种方式更适合多环境开发和部署,也可以减少频繁修改配置文件的问题。
更多推荐


所有评论(0)