Spring Boot的多环境配置

在开发Spring Boot项目中,如果我们想把自己的项目开源到Github仓库,application.yml中的某些配置比如MySQL、Redis的账户密码,还有的就是现在引入AI之后的一些密钥,可能都不太愿意推送到仓库去。

这个时候,可以通过配置多环境来解决,给本地一个专有的配置文件,然后将其添加到.gitignore文件中,这样就有效解决了这个问题。

下面介绍一下 Spring Boot的多环境配置方法:

Spring Boot 支持的多环境配置文件,命名规则为 application-{profile}.yml(profile 是环境标识,如local/dev/test/prod)。

操作步骤

  1. application.yml(公共配置)
yaml 复制代码
spring:
  application:
    name: xxx
  profiles:
    active: local  # 激活local环境

# springdoc-openapi(所有环境都用这个扫描包,通用)
springdoc:
  group-configs:
    - group: 'default'
      packages-to-scan: com.xx.xx.controller

# knife4j(所有环境都开启,中文界面,通用)
knife4j:
  enable: true
  setting:
    language: zh_cn
  1. application-local.yml(本地开发专属配置)
yaml 复制代码
# 本地专属:端口、上下文路径
server:
  port: xxxx
  servlet:
    context-path: /api

# 本地专属的其他配置(比如数据库、日志、Redis等)
# spring:
#   datasource:
#     url: jdbc:mysql://localhost:3306/xx?useSSL=false&serverTimezone=UTC
#     username: xx
#     password: xx
#     driver-class-name: com.mysql.cj.jdbc.Driver
# logging:
#   level:
#     com.xx.xx: debug  # 本地开发开启debug日志
# redis:
#   host: localhost
#   port: xxxx

通过在 application.yml 中配置 spring.profiles.active 激活指定环境,最后的加载顺序就是:

  • 先加载公共配置 application.yml;

  • 再加载激活的环境配置 application-local.yml;

这样的话,环境配置中的同名配置项 会覆盖公共配置,不同配置项自动合并,实现 "公共 + 专属" 并存。

相关推荐
IT_陈寒4 分钟前
Java序列化踩坑记:对象循环引用让我加班两小时
前端·人工智能·后端
lgcgkCQ13 分钟前
【AI 转型实战 1】SpringAI 入门:搭建基础大模型对话能力
java·ai·agent·rag·spring ai·mcp·langchain4j
泡海椒13 分钟前
05-雷达图多维画像-信用评级多维画像
后端
王中阳Go14 分钟前
5.27 分钟干完后端和全部测试:一场三小时笔试的五个失分点,四个不在代码上
大数据·数据库·人工智能·后端·大语言模型
大哥430915 分钟前
Modbus 的"字序":一个配错就变成天文数字,或者干脆变成 0
后端
Wang's Blog18 分钟前
Java 项目实战:交友项目 - 用户体系集成总结
java·开发语言·交友
岩钧19 分钟前
New API 源码解析:一个生产级 AI 网关的架构与实现
后端
学到老活到老25 分钟前
第 24 集:配置文件写了 80,Spring Boot 为什么读到 90?
java·后端·spring
用户3600555790026 分钟前
Kestrel_VLLM - 25 · 全注意力层设备化、整层对拍与访存粒度
后端
yliucherish32 分钟前
从零实现一个 SQL 注入检测引擎:报错注入与布尔盲注的误报控制
后端