SpringBoot多环境配置

文章目录

概要

Spring Boot 项目的多环境配置方案,通过 application.yml 配合 application-xxx.yml,可灵活切换开发、测试和生产环境。

推荐的配置结构

bash 复制代码
src/
 └── main/
     ├── java/
     └── resources/
         ├── application.yml             # 主配置入口,统一设置 profile
         ├── application-dev.yml         # 开发环境配置
         ├── application-test.yml        # 测试环境配置(可选)
         └── application-prod.yml        # 生产环境配置

各配置文件内容示例

1、application.yml ------ 统一入口配置

yml 复制代码
spring:
  profiles:
    active: dev  # 默认环境,可通过命令行或环境变量覆盖

# 公共配置:所有环境都生效
server:
  servlet:
    context-path: /api

2、application-dev.yml ------ 本地开发配置

yml 复制代码
server:
  port: 8080

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/dev_db
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver
  jackson:
    serialization:
      indent_output: true

3、 application-prod.yml ------ 生产环境配置

yml 复制代码
server:
  port: 8081

spring:
  datasource:
    url: jdbc:mysql://prod-db:3306/prod_db
    username: root
    password: root # 密码设置复杂一点!
    driver-class-name: com.mysql.cj.jdbc.Driver
  jackson:
    serialization:
      indent_output: false
logging:
  level:
    root: WARN

启动时切换环境

1、java -jar app.jar --spring.profiles.active=prod 【命令行指定(最常用)】

2、 IDEA 中配置 VM 参数(本地开发调试)

使用 @Profile 动态加载 Bean

基于不同环境加载不同的Bean

java 复制代码
@Configuration
public class DataSourceConfig {

    @Bean
    @Profile("dev")
    public DataSource devDataSource() {
        // return dev datasource
    }

    @Bean
    @Profile("prod")
    public DataSource prodDataSource() {
        // return prod datasource
    }
}
相关推荐
我命由我123451 小时前
Kotlin 数据容器 - List(List 概述、创建 List、List 核心特性、List 元素访问、List 遍历)
java·开发语言·jvm·windows·java-ee·kotlin·list
武子康3 小时前
Java-80 深入浅出 RPC Dubbo 动态服务降级:从雪崩防护到配置中心秒级生效
java·分布式·后端·spring·微服务·rpc·dubbo
舒一笑4 小时前
我的开源项目-PandaCoder迎来史诗级大更新啦
后端·程序员·intellij idea
@昵称不存在5 小时前
Flask input 和datalist结合
后端·python·flask
zhuyasen5 小时前
Go 分布式任务和定时任务太难?sasynq 让异步任务从未如此简单
后端·go
东林牧之6 小时前
Django+celery异步:拿来即用,可移植性高
后端·python·django
YuTaoShao6 小时前
【LeetCode 热题 100】131. 分割回文串——回溯
java·算法·leetcode·深度优先
源码_V_saaskw6 小时前
JAVA图文短视频交友+自营商城系统源码支持小程序+Android+IOS+H5
java·微信小程序·小程序·uni-app·音视频·交友
超浪的晨6 小时前
Java UDP 通信详解:从基础到实战,彻底掌握无连接网络编程
java·开发语言·后端·学习·个人开发
AntBlack7 小时前
从小不学好 ,影刀 + ddddocr 实现图片验证码认证自动化
后端·python·计算机视觉