一:前言

在 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_HOMEMAVEN_HOME 这种公共工具路径,更适合配置到 系统变量

如果用户变量和系统变量中都配置了同名变量,例如都叫 SERVER_PORT,容易造成混淆,所以不建议重复配置同名变量。


五:总结

application.yml 中引用环境变量,可以让配置更加灵活。

推荐写法:

server:
  port: ${SERVER_PORT:10200}

它的意思是:优先使用环境变量 SERVER_PORT,如果没有配置,就使用默认端口 10200

相比直接写死端口号,这种方式更适合多环境开发和部署,也可以减少频繁修改配置文件的问题。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐