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

如何安全地管理Spring Boot项目中的敏感配置信息

在开发Spring Boot应用时,我们经常需要处理一些敏感的配置信息,比如数据库密码、API密钥等。以下是一个最佳实践方案:
在这里插入图片描述

1. 创建配置文件

application.yml(版本控制)

spring:datasource:url: ${MYSQL_URL:jdbc:mysql://localhost:3306/db_name}username: ${MYSQL_USERNAME:root}password: ${MYSQL_PASSWORD:}redis:host: ${REDIS_HOST:localhost}port: ${REDIS_PORT:6379}password: ${REDIS_PASSWORD:}

application-local.yml(本地开发,不进入版本控制)

spring:datasource:url: jdbc:mysql://localhost:3306/my_local_dbusername: dev_userpassword: dev_passwordredis:host: localhostport: 6379password: local_redis_pass

在这里插入图片描述

  • 新创建application-local.yml,可能会自动加入git 管理,这里选择回滚为了保证这个文件不加入git 管理。

2. 配置.gitignore

将以下内容添加到.gitignore文件:

# 忽略本地配置文件
application-local.yml

在这里插入图片描述

3. 最佳实践说明

  1. application.yml 作为默认配置文件:

    • 包含所有配置项的模板
    • 使用环境变量占位符
    • 提供默认值
    • 可以提交到版本控制系统
  2. application-local.yml 作为本地开发配置:

    • 包含实际的本地开发环境配置
    • 包含敏感信息
    • 添加到.gitignore,不提交到版本控制系统
  3. 在开发环境中:

    • 开发人员可以根据自己的本地环境创建和修改application-local.yml
    • 每个开发人员可以有自己的本地配置,互不影响
  4. 在生产环境中:

    • 使用环境变量或外部配置系统提供实际的配置值
    • 不需要application-local.yml文件

4. 使用方法

  1. 克隆项目后,复制application.yml为application-local.yml
  2. 在application-local.yml中填入本地开发环境的实际配置
  3. 确保application-local.yml已在.gitignore中
  4. 启动应用时,Spring Boot会自动合并这两个配置文件
http://www.lryc.cn/news/531725.html

相关文章:

  • Docker小游戏 | 使用Docker部署2048网页小游戏
  • RabbitMQ深度探索:消息幂等性问题
  • Linux网络 | 进入数据链路层,学习相关协议与概念
  • 芝法酱学习笔记(2.6)——flink-cdc监听mysql binlog并同步数据至elastic-search和更新redis缓存
  • JavaScript系列(58)--性能监控系统详解
  • GESP2023年12月认证C++六级( 第三部分编程题(1)闯关游戏)
  • git 新项目
  • 系统URL整合系列视频一(需求方案)
  • Vue.js 使用组件库构建 UI
  • 计算图 Compute Graph 和自动求导 Autograd | PyTorch 深度学习实战
  • 51单片机入门_05_LED闪烁(常用的延时方法:软件延时、定时器延时;while循环;unsigned char 可以表示的数字是0~255)
  • 如何获取sql数据中时间的月份、年份(类型为date)
  • 【单层神经网络】softmax回归的从零开始实现(图像分类)
  • 使用开源项目:pdf2docx,让PDF转换为Word
  • 保姆级教程Docker部署KRaft模式的Kafka官方镜像
  • ChatGPT提问技巧:行业热门应用提示词案例--咨询法律知识
  • openRv1126 AI算法部署实战之——Tensorflow模型部署实战
  • STM32 TIM定时器配置
  • 51单片机 05 矩阵键盘
  • SSRF 漏洞利用 Redis 实战全解析:原理、攻击与防范
  • kubernetes学习-配置管理(九)
  • python 语音识别
  • 一文速览DeepSeek-R1的本地部署——可联网、可实现本地知识库问答:包括671B满血版和各个蒸馏版的部署
  • [mmdetection]fast-rcnn模型训练自己的数据集的详细教程
  • 1. Kubernetes组成及常用命令
  • linux下ollama更换模型路径
  • 本地Ollama部署DeepSeek R1模型接入Word
  • 【自学笔记】Git的重点知识点-持续更新
  • [EAI-028] Diffusion-VLA,能够进行多模态推理和机器人动作预测的VLA模型
  • 实现数组的扁平化