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激活