全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-18 6 分钟 ✍️ juanwangdev

SpringBoot多环境配置dev与prod

SpringBoot Profile 实现多环境配置管理。

Profile文件命名

YAML
application.yml           # 公共配置
application-dev.yml       # 开发环境
application-test.yml      # 测试环境
application-prod.yml      # 生产环境

配置示例

公共配置

YAML
# application.yml
spring:
  application:
    name: my-app
  profiles:
    active: dev    # 激活dev环境

server:
  port: 8080

开发环境配置

YAML
# application-dev.yml
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/dev_db
    username: dev
    password: dev123

logging:
  level:
    root: debug

生产环境配置

YAML
# application-prod.yml
spring:
  datasource:
    url: jdbc:mysql://prod-server:3306/prod_db
    username: prod
    password: ${DB_PASSWORD}

server:
  port: 80

logging:
  level:
    root: warn
  file:
    name: /var/logs/app.log

激活Profile方式

配置文件激活

Bash
spring:
  profiles:
    active: prod

命令行激活

Bash
java -jar app.jar --spring.profiles.active=prod

环境变量激活

Bash
export SPRING_PROFILES_ACTIVE=prod
java -jar app.jar

IDEA运行激活

Run Configuration → Active profiles: prod

Profile优先级

Java
application-{profile}.yml > application.yml

特定环境配置覆盖公共配置。

多Profile激活

Java
# 同时激活多个Profile
java -jar app.jar --spring.profiles.active=dev,mysql

条件化Bean

YAML
@Configuration
@Profile("dev")
public class DevConfig {

    @Bean
    public DataSource devDataSource() {
        return new EmbeddedDataSource();
    }
}

@Configuration
@Profile("prod")
public class ProdConfig {

    @Bean
    public DataSource prodDataSource() {
        return new MySQLDataSource();
    }
}

方法级Profile

Bash
@Service
public class CacheService {

    @Profile("dev")
    @Bean
    public CacheManager devCache() {
        return new SimpleCacheManager();
    }

    @Profile("prod")
    @Bean
    public CacheManager prodCache() {
        return new RedisCacheManager();
    }
}

环境变量注入

YAML
# application-prod.yml
spring:
  datasource:
    password: ${DB_PASSWORD}    # 从环境变量读取
text
export DB_PASSWORD=secret123
java -jar app.jar --spring.profiles.active=prod

Profile默认值

text
spring:
  profiles:
    active: dev    # 默认激活dev
    default: dev   # 未指定时的默认

要点总结

  • application-{profile}.yml命名规则
  • spring.profiles.active激活指定环境
  • 命令行参数可覆盖配置文件
  • @Profile注解条件化Bean加载
  • 生产环境敏感配置使用环境变量

📝 发现内容有误?点击此处直接编辑

← 上一篇 编写第一个RESTful接口
下一篇 → SpringBoot自定义配置属性与@Value
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库