---
title: "Spring 配置别写死：先分 profile，再谈环境变量覆盖 - Angryecho"
description: "把数据库密码写进 application.yml 再提交，是最常见的回滚成本。"
canonical_url: "https://www.angryecho.com/c/Spring/p/P2TBBisJXOuqNabysba7k"
meta:
  "og:description": "把数据库密码写进 application.yml 再提交，是最常见的回滚成本。"
  "og:image": "https://www.angryecho.com/_og/d/c_Post%2Ctitle_~5ZCQ5qe9572R%2Cdescription_~5ZCQ5qe95LiA5LiL77yM5bCx5LiK5ZCQ5qe9572R44CC%2CpostId_P2TBBisJXOuqNabysba7k%2Crevision_~MjAyNi0xMC0yOFQwMjo1NjowMC4yNzc5NDRa%2Cp_Ii9jL1NwcmluZy9wL1AyVEJCaXNKWE91cU5hYnlzYmE3ayI%2Cs_ZyaltLwhnHEyzpD-.png"
  "og:image:height": "630"
  "og:image:type": image/png
  "og:image:width": "1200"
  "og:title": "Spring 配置别写死：先分 profile，再谈环境变量覆盖"
---

> Index of every page on this site: [llms.txt](https://www.angryecho.com/llms.txt)

# **Spring 配置别写死：先分 profile，再谈环境变量覆盖**

把数据库密码写进 `application.yml` 再提交，是最常见的回滚成本。更稳的顺序是：

1. 本地用 `application-local.yml`（不进库）或环境变量；
2. 用 `spring.profiles.active` 区分 local / dev / prod；
3. 生产密钥走环境变量、密钥管理服务或挂载文件，而不是镜像层。

排查时先看生效顺序：命令行参数、环境变量、profile 专属文件、默认文件。同一 key 被多处覆盖时，打印一次 `Environment` 有效值，比猜「到底读没读到」快。新项目宁可先把密钥外置做对，再谈优雅的多模块拆分。

## 来源

> \[1] [Externalized Configuration](https://docs.spring.io/spring-boot/reference/features/external-config.html)，Spring Boot Docs，查阅于2026年10月24日。

#Spring #SpringBoot #配置 #profile #教程

排序方式 :

### **成为第一条评论！**

Nobody's responded to this post yet. Add your thoughts and get the conversation going.

```json
{"@context":"https://schema.org","@graph":[{"@id":"https://www.angryecho.com/c/Spring/p/P2TBBisJXOuqNabysba7k#post","@type":"DiscussionForumPosting","commentCount":0,"dateModified":"2026-10-28T02:56:00.277Z","datePublished":"2026-10-24T02:22:03.908Z","description":"把数据库密码写进 application.yml 再提交，是最常见的回滚成本。","headline":"Spring 配置别写死：先分 profile，再谈环境变量覆盖","isPartOf":"https://www.angryecho.com/c/Spring","mainEntityOfPage":"https://www.angryecho.com/c/Spring/p/P2TBBisJXOuqNabysba7k","text":"把数据库密码写进 application.yml 再提交，是最常见的回滚成本。更稳的顺序是：\n\n\n\n\n\n本地用 application-local.yml（不进库）或环境变量；\n\n\n\n用 spring.profiles.active 区分 local / dev / prod；\n\n\n\n生产密钥走环境变量、密钥管理服务或挂载文件，而不是镜像层。\n\n排查时先看生效顺序：命令行参数、环境变量、profile 专属文件、默认文件。同一 key 被多处覆盖时，打印一次 Environment 有效值，比猜「到底读没读到」快。新项目宁可先把密钥外置做对，再谈优雅的多模块拆分。\n\n来源\n\n\n\n[1] Externalized Configuration，Spring Boot Docs，查阅于2026年10月24日。\n\n#Spring #SpringBoot #配置 #profile #教程","url":"https://www.angryecho.com/c/Spring/p/P2TBBisJXOuqNabysba7k","author":{"@type":"Person","name":"Sean","url":"https://www.angryecho.com/u/P7H9631970"},"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":0},{"@type":"InteractionCounter","interactionType":"https://schema.org/DislikeAction","userInteractionCount":0},{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":0},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":0}]}]}
```

## Sitemap

See the full [sitemap](https://www.angryecho.com/sitemap.md) for all pages.
