You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot应用如何从.env文件读取环境变量到application.yml?

解决Spring Boot从.env文件读取变量到application.yml的方法

1. 确认Spring Boot版本

确保你的Spring Boot版本在2.4.0及以上,spring.config.import特性是从该版本开始引入的,这是读取外部配置文件的基础。

2. 修正application.yml的配置

根据你的.env文件位置,调整spring.config.import的路径:

  • 若.env放在项目根目录(推荐此位置,避免被打包进jar包):
spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/${db_name}
    username: ${db_username}
    password: ${db_password}
  config:
    import: file:.env[.properties]
  • 若.env放在src/main/resources目录(与application.yml同目录):
spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/${db_name}
    username: ${db_username}
    password: ${db_password}
  config:
    import: classpath:.env[.properties]

提示:暂时去掉optional:前缀,这样如果找不到.env文件会直接报错,方便排查路径问题,确认配置生效后再加回optional:避免启动报错。

3. 确保.env文件格式合规

你的.env文件格式没问题,保持标准的key=value格式即可,注意不要加引号、不要在等号前后加空格(比如db_name = test_db这种格式会导致解析失败):

db_name=test_db
db_username=postgres
db_password=123456

4. IntelliJ IDEA运行配置注意事项

  • 无需额外配置手动环境变量,Spring Boot会自动读取.env文件中的变量
  • 若之前在IDEA运行配置中手动设置过环境变量,其优先级会高于.env文件的值,测试时可暂时清空手动配置,验证读取逻辑
  • 确保IDEA未忽略.env文件:可在Project Structure中检查文件是否被标记为"Resource"类型

5. 打包运行的配置

如果打包成jar运行,需将.env文件与jar包放在同一目录,或通过命令行参数指定文件路径:

java -jar your-app.jar --spring.config.import=file:/path/to/your/.env[.properties]

内容的提问来源于stack exchange,提问作者Jack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 04:57:17