You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Spring Boot应用中读取Docker容器的配置参数?

Spring Boot读取Docker容器环境变量配置说明

完全可以,这也是Spring Boot适配容器化部署的主流配置注入方式,Spring Boot自身的属性加载机制原生支持读取系统环境变量,且优先级高于本地配置文件中的配置,非常适合容器环境下动态调整应用参数。

常用实现方式

1. 单个参数读取(@Value注解)

你在启动Docker容器时通过-e参数传入环境变量,比如:

docker run -e APP_ALLOWED_ORIGINS=https://example.com -e DB_MAX_POOL_SIZE=20 你的SpringBoot镜像名

在代码中直接通过@Value注解读取即可,还可以设置默认值避免环境变量缺失导致启动失败:

@RestController
public class TestController {
    // 冒号后为默认值,若未传对应环境变量则使用该值
    @Value("${APP_ALLOWED_ORIGINS:http://localhost:8080}")
    private String allowedOrigins;

    @Value("${DB_MAX_POOL_SIZE:10}")
    private Integer dbMaxPoolSize;
}

2. 批量参数绑定(@ConfigurationProperties注解)

如果需要传入的配置参数较多,推荐用批量绑定的方式减少重复代码:
第一步先定义配置类:

import org.springframework.boot.context.properties.ConfigurationProperties;

// 前缀对应环境变量的前缀,环境变量命名用下划线分隔即可自动映射
@ConfigurationProperties(prefix = "app")
public class AppEnvProperties {
    // 对应环境变量APP_ALLOWED_ORIGINS
    private String allowedOrigins;
    // 对应环境变量APP_DB_MAX_POOL_SIZE
    private Integer dbMaxPoolSize;
    // 对应环境变量APP_UPLOAD_PATH
    private String uploadPath;

    // 此处省略getter、setter方法
}

第二步在启动类上开启配置扫描:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;

@SpringBootApplication
@EnableConfigurationProperties(AppEnvProperties.class)
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

之后直接在需要用到配置的地方注入AppEnvProperties类即可调用所有配置参数。

注意事项

  • Spring Boot支持松绑定规则:配置文件中的小写+点分隔命名(如app.allowed-origins)会自动和大写+下划线分隔的环境变量(如APP_ALLOWED_ORIGINS)映射,不需要额外调整代码配置
  • 环境变量的优先级高于application.yml/application.properties中的配置,容器中传入的环境变量会自动覆盖本地配置文件的同名配置,不需要修改打包好的应用文件
  • 如果使用docker-compose部署,直接在yaml的environment字段下配置环境变量即可,和docker run -e的效果完全一致

内容的提问来源于stack exchange,提问作者KrishnaJK4567

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 15:54:04