《在 Spring Boot 中安全使用 Qwen API-KEY:环境变量替代明文配置的最佳实践》

发布于:2025-08-09 ⋅ 阅读:(15) ⋅ 点赞:(0)

《在 Spring Boot 中安全使用 Qwen API-KEY:环境变量替代明文配置的最佳实践》

想要的效果其实就是 把 Qwen API-KEY 放到系统环境变量中,然后在 application.yml 里通过占位符读取,而不写明文。
这样即便 application.yml 被提交到 Git,也不会泄露 key。

分成三个步骤搞定:


1. 在系统中设置 Qwen API-KEY

假设真实的API-KEY是sk-12asdadba01231231b6a5asda9d7d

Mac / Linux

# 临时生效(只对当前终端会话有效)
export QWEN_API_KEY=sk-12asdadba01231231b6a5asda9d7d

# 永久生效(写入 shell 配置文件,比如 ~/.bashrc 或 ~/.zshrc)
echo 'export QWEN_API_KEY=sk-12asdadba01231231b6a5asda9d7d' >> ~/.zshrc
source ~/.zshrc

Windows(PowerShell)

# 临时生效(仅当前会话)
$env:QWEN_API_KEY="sk-12asdadba01231231b6a5asda9d7d"

# 永久生效
setx QWEN_API_KEY "sk-12asdadba01231231b6a5asda9d7d"

2. 在 application.yml 中引用环境变量

qwen:
  api-key: ${QWEN_API_KEY}
  • ${QWEN_API_KEY} 会从系统环境变量中读取值
  • 如果想给默认值(避免本地没设置时报错):
qwen:
  api-key: ${QWEN_API_KEY:default-key-if-not-set}

3. 在 Spring Boot 中读取

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class QwenConfig {
    @Value("${qwen.api-key}")
    private String apiKey;

    public String getApiKey() {
        return apiKey;
    }
}

这样 Spring Boot 启动时会自动读取系统的环境变量 QWEN_API_KEY
application.yml 就不需要暴露明文了。


💡 补充建议
如果你部署在服务器(比如 Docker / K8s),可以在启动容器时直接传环境变量:

docker run -e QWEN_API_KEY=sk-12asdadba01231231b6a5asda9d7d my-springboot-app

读取 环境变量 → application.yml → 默认值 的。

4. 注意

如果启动IDEA,发现读取不到设置的环境变量的话,可以先用羡慕这行命令读取环境变量,看看是否生效了。

echo $QWEN_API_KEY

如果这个时候仍然没有获取到内容,但是去~/.zshrc下可以查看到对应的值的话,原因就是当时已经打开过IDEA了,这个时候读取不到设置的环境变量,需要重新退出IDEA,然后重新打开去输入上述命令查看。


网站公告

今日签到

点亮在社区的每一天
去签到