新闻详情

新闻详情

首页 / 资讯中心 / 详情

SpringBoot多环境配置,别再手动改配置文件了

发布时间:2026/11/15 1:15:51来源:尧图网络
SpringBoot多环境配置,别再手动改配置文件了
SpringBoot早就给出了答案Profile机制。核心思路是把不同环境的配置拆到独立文件里通过一个开关决定激活哪一套。默认的application.yml放通用配置比如应用名称、端口、日志格式。环境相关的配置分别放进application-dev.yml、application-test.yml、application-prod.yml。数据库连接、Redis地址、第三方密钥各归各的文件。激活方式有好几种按优先级从高到低命令行参数--spring.profiles.activeprodJava系统属性-Dspring.profiles.activeprod操作系统环境变量SPRING_PROFILES_ACTIVEprod最后才是配置文件里的spring.profiles.active。生产环境推荐用环境变量容器化部署时在Kubernetes的Deployment里注入改环境不用动代码也不用重新打包。Maven多模块项目里还可以结合Maven Profile做资源过滤。在pom.xml里定义不同环境的profile打包时用mvn clean package -Pprod让Maven把对应环境的配置文件复制到target/classes。这样连application-prod.yml都不用提交到代码库敏感信息留在构建服务器上。但要注意Maven资源过滤会替换...占位符和SpringBoot的${...}语法容易混淆用之前先统一约定。有些配置项在所有环境都一样只是值不同比如连接池大小、超时时间。可以放在application.yml里用占位符引用环境变量spring.datasource.url: ${DB_URL:jdbc:mysql://localhost:3306/dev}。冒号后面是默认值本地开发不设环境变量也能跑。生产环境通过环境变量覆盖既安全又灵活。代码层面Profile注解可以控制Bean的注册。比如本地开发用内存缓存生产用Redis定义两个CacheService实现分别标上Profile(dev)和Profile(prod)Spring会根据激活的Profile自动选择。Profile也支持表达式比如Profile(!prod)表示非生产环境生效。测试环境有个坑SpringBootTest默认不激活任何Profile会加载application.yml里的默认配置。如果默认配置指向本地库CI流水线跑测试就会失败。解决办法是在测试类上加ActiveProfiles(test)并确保application-test.yml存在且配置正确。配置中心是更彻底的方案。Nacos、Apollo、Spring Cloud Config把配置从代码库抽离放到远程服务器应用启动时拉取。改配置不用重新打包支持灰度发布和版本回滚。但引入配置中心也带来新的复杂度网络依赖、配置缓存、本地降级。中小项目用Profile文件足够等配置项超过几十个、环境超过三个、变更频率高了再考虑上配置中心。最后记住一条敏感信息永远不要写进application-prod.yml并提交到Git。数据库密码、API密钥、JWT签名盐全部用环境变量注入。SpringBoot的spring.datasource.password: ${DB_PASSWORD}配合K8s Secret或Docker Secret既安全又符合十二要素应用的原则。别再手动改配置文件了。把环境差异交给Profile把敏感信息交给环境变量把构建差异交给Maven Profile。人容易犯错让机器去处理这些重复劳动。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/14 3:51:47

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/12 23:59:09

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/14 10:11:15

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/14 17:14:38

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/14 16:35:50

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/14 3:51:43

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉