当前位置: 首页 > news >正文

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

《在 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,然后重新打开去输入上述命令查看。

http://www.dtcms.com/a/321340.html

相关文章:

  • 五十五、【Linux系统nginx服务】nginx安装、用户认证、https实现
  • 若以微服务部署踩坑点
  • Kiro :从“规范”到“实现”的全流程 AI 助手
  • PBootcms网站模板伪静态配置教程
  • 【新启航】旋转治具 VS 手动翻转:三维扫描中自动化定位如何将单件扫描成本压缩 75%
  • 深度学习圈常见的 TensorFlow、PyTorch、Transformer、transformers,到底有什么区别?
  • WEEX参与欧洲两场重要Web3线下活动,助力社区协作与技术交流
  • c++注意点(15)----设计模式(桥接模式与适配器模式)
  • 机器学习 SVM支持向量机
  • LintCode第433题-岛屿的个数
  • 【同余最短路】P2371 [国家集训队] 墨墨的等式|省选-
  • C5.2:如何利用BJT的区域进行稳定工作
  • 冠雅新品 | 以“无形之光”守护双眸,以“无声之智”浸润生活
  • 冷冻食材,鲜美生活的新选择
  • 深入理解OpenGL Shader与GLSL:基础知识与优势分析
  • 深度学习·Cascade-CLIP
  • Linux中的内核同步源码相关总结
  • 安科瑞EMS3.0:打造“零碳工厂”的智能能源神经中枢
  • 在 Mac 上安装 IntelliJ IDEA
  • 艾体宝产品 | 从“被看见”到“被信任”:GWI 协助洞察消费者,重构品牌认知
  • day21|学习前端vue3框架和ts语言
  • 二十八天(数据结构:图的补充)
  • 璞致电子 PZ-FH8052 高性能 FMC 子卡:超高速信号链的理想解决方案
  • Agent 开发进阶路线:从基础功能到自主决策
  • C++基础学习笔记
  • 如何在simulink中双击一个模块弹出一个exe?
  • SCI论文润色一站式服务
  • 机器学习模型在订单簿大单预测与应对
  • 线程池分析与设计
  • 【设计模式】访问者模式模式