首页  

springboot应用查看配置值及来源     所属分类 springboot 浏览量 6
SpringBoot中,查看配置项的最终值 + 配置来源 3种方法 

一、使用 内置 Actuator(一键查看所有配置)

官方标准方案,能看到每个配置的最终值 + 来源文件

1. 引入依赖
org.springframework.boot:spring-boot-starter-actuator 


2. 开启端点
application.yml

management:
  endpoints:
    web:
      exposure:
        include: env,configprops

3. 访问接口查看配置
(1)查看所有环境变量 + 配置来源

http://localhost:端口/actuator/env


{
  "name": "server.port",
  "value": "8080",
  "origin": "Config resource 'class path resource [application.yml]' via location 'optional:classpath:/'"
}
value:最终生效的值
origin:值来自哪里(配置文件、环境变量、命令行等)
(2)查看绑定到 Bean 的配置

http://localhost:端口/actuator/configprops
所有 @ConfigurationProperties 的配置值



二、启动日志自动显示配置来源
SpringBoot 2.4+ 自带配置诊断日志,只需开启:

logging:
  level:
    org.springframework.boot.context.properties: DEBUG
启动时控制台输出:


xx property loaded from application.yml
xx property loaded from systemEnvironment



三、代码里获取某个配置的值 + 来源

1. 获取值

@Value("${server.port}")
private String port;

ApplicationContext context;
context.getEnvironment().getProperty(key);

Environment environment;
environment.getProperty(key);


2. 获取配置来源

@Autowired
private ConfigurableEnvironment environment;

public void getConfigSource() {
    // 获取某个key的来源
    PropertySource< ?> source = ((ConfigurableEnvironment) environment)
        .getPropertySources()
        .stream()
        .filter(ps -> ps.containsProperty("server.port"))
        .findFirst()
        .orElse(null);
    
    System.out.println("来源:" + source.getName());
    System.out.println("值:" + environment.getProperty("server.port"));
}

上一篇     下一篇
Docker Compose Java 应用 command 多行参数示例

Docker Compose 常用排查命令

Docker Compose 设置 SpringBoot应用配置参数

springboot profile激活