当前位置: 首页 > news >正文

查看Spring Boot项目所有配置信息的几种方法,包括 Actuator端点、日志输出、代码级获取 等方式,附带详细步骤和示例

以下是查看Spring Boot项目所有配置信息的几种方法,包括 Actuator端点日志输出代码级获取 等方式,附带详细步骤和示例:
在这里插入图片描述


1. 使用Spring Boot Actuator

Actuator是Spring Boot提供的监控和管理工具,包含/configprops端点可查看所有配置属性。

步骤
1.1 添加依赖

pom.xml中添加Actuator依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
1.2 配置暴露端点

application.ymlapplication.properties中配置暴露configprops端点:

management:endpoints:web:exposure:include: "configprops,health"  # 暴露configprops和health端点
1.3 访问配置信息

启动应用后,访问:

http://localhost:{port}/actuator/configprops

例如:http://localhost:8080/actuator/configprops

输出示例
{"configurations": [{"name": "spring.http","properties": {"encoding.auto": {"value": "false","origin": "SpringBootAutoConfiguration"},"encoding.charset": {"value": "UTF-8","origin": "Spring Boot default"}}},...]
}

2. 通过日志输出配置信息

在日志中直接打印所有配置属性。

步骤
2.1 配置日志级别

application.yml中启用配置属性日志:

logging:level:org.springframework.boot.context.properties: DEBUG
2.2 启动应用

启动应用后,日志中会输出所有配置属性的加载信息,例如:

DEBUG 12345 --- [           main] o.s.b.c.p.PropertySourceBootstrapConfiguration : Located property source: [...]
DEBUG 12345 --- [           main] o.s.b.c.p.PropertySourceBootstrapConfiguration : Adding property source: [...]
2.3 查看完整配置

若需更详细的输出,可在启动时添加参数:

java -jar your-app.jar --show-config

此参数会输出所有合并后的配置属性(Spring Boot 2.3+支持)。


3. 通过代码获取配置信息

在代码中注入Environment或使用@Value获取配置属性。

3.1 获取所有配置
import org.springframework.core.env.Environment;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class ConfigController {@Autowiredprivate Environment env;@GetMapping("/all-config")public Map<String, Object> getAllProperties() {return env.getPropertySources().stream().flatMap(ps -> ps.getPropertyNames().stream().map(name -> new AbstractMap.SimpleEntry<>(name, ps.getProperty(name)))).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));}
}
访问接口

访问:

http://localhost:8080/all-config

4. 使用Spring Boot DevTools的/env端点

DevTools提供了/env端点,可查询特定配置属性。

步骤
4.1 添加依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope>
</dependency>
4.2 访问端点

访问:

http://localhost:8080/actuator/env

或查询特定属性:

http://localhost:8080/actuator/env/spring.datasource.url

5. 使用@ConfigurationProperties绑定并打印

将配置属性绑定到Bean并打印。

步骤
5.1 创建配置类
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;@Component
@ConfigurationProperties(prefix = "your.prefix")
public class YourConfig {private String property1;// getters/setters
}
5.2 打印配置
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;@Component
public class ConfigPrinter implements CommandLineRunner {@Autowiredprivate YourConfig config;@Overridepublic void run(String... args) throws Exception {System.out.println("Config Property1: " + config.getProperty1());}
}

关键配置对比表格

方法适用场景优点缺点
Actuator /configprops开发/生产环境监控直接通过HTTP接口查看所有配置需配置安全策略(避免暴露敏感信息)
日志输出调试或启动时快速查看无侵入性,适合临时调试需手动解析日志内容
代码获取需要程序内处理配置信息灵活控制输出格式需编写代码
DevTools /env开发环境快速查询支持查询单个属性需依赖DevTools模块
@ConfigurationProperties需要绑定配置到Bean时类型安全,符合Spring规范需针对每个配置前缀编写Bean

注意事项

  1. 安全配置

    • 生产环境需限制Actuator端点访问,例如:
      management:endpoints:web:exposure:include: "health"security:enabled: true
      
  2. 敏感信息过滤

    • 避免暴露敏感配置(如密码),可通过management.endpoints.web.cors.allowed-origins或安全策略控制访问。
  3. 性能影响

    • /configprops端点在配置复杂时可能返回大量数据,需注意性能。

完整示例代码

application.yml
spring:application:name: config-demodatasource:url: jdbc:mysql://localhost:3306/testusername: rootpassword: rootmanagement:endpoints:web:exposure:include: "configprops,health"
pom.xml依赖
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
</dependencies>

通过上述方法,可根据需求选择最适合的配置查看方式。如需进一步优化或解决特定问题(如安全配置、日志过滤),可提供具体场景!

相关文章:

  • 2025年特种作业操作证考试题库及答案(登高架设作业)
  • Ubuntu数据连接访问崩溃问题
  • Electron主进程渲染进程间通信的方式
  • UWB与GPS技术融合的室内外无缝定位方案
  • 【MCP Node.js SDK 全栈进阶指南】利用TypeScript-SDK打造高效MCP应用
  • 程序生成随机数
  • 4.22学习总结
  • Apache PDFBox
  • 常见的神经网络权重文件格式及其详细说明
  • 马拉松赛补给策略
  • P3416-图论-法1.BFS / 法2.Floyd
  • 计算机组成与体系结构:缓存(Cache)
  • 嘻游电玩三端客户端部署实战:PC + Android + iOS 环境全覆盖教程
  • UOS+N 卡 + CUDA 环境下 X86 架构 DeepSeek 基于 vLLM 部署与 Dify 平台搭建指南
  • React 单一职责原则:优化组件设计与提高可维护性
  • Docker 快速入门教程
  • 使用Java调用TensorFlow与PyTorch模型:DJL框架的应用探索
  • 智能座舱测试内容与步骤
  • React18+ 项目搭建-从初始化、技术选型到开发部署的全流程规划
  • 【机器学习-线性回归-2】理解线性回归中的连续值与离散值
  • 我国已形成完整人工智能产业体系,专利申请量位居全球首位
  • 邮轮、无人机、水上运动……上海多区推动文旅商体展融合发展
  • 梁启超“失肾记”的余波:中西医论战与最后的真相
  • 消费补贴政策力度最大的一届!第六届上海“五五购物节” 4月底启幕
  • 第四届全民阅读大会·阅读权益保障论坛举办
  • 十三届全国政协经济委员会副主任张效廉严重违纪违法被开除党籍