SpringBoot查看项目配置信息的几种常见方法
作者:爱的叹息
以下是查看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.yml或application.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 { @Autowired private 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 { @Autowired private YourConfig config; @Override public void run(String... args) throws Exception { System.out.println("Config Property1: " + config.getProperty1()); } }
6.关键配置对比表格
方法 | 适用场景 | 优点 | 缺点 |
---|---|---|---|
Actuator /configprops | 开发/生产环境监控 | 直接通过HTTP接口查看所有配置 | 需配置安全策略(避免暴露敏感信息) |
日志输出 | 调试或启动时快速查看 | 无侵入性,适合临时调试 | 需手动解析日志内容 |
代码获取 | 需要程序内处理配置信息 | 灵活控制输出格式 | 需编写代码 |
DevTools /env | 开发环境快速查询 | 支持查询单个属性 | 需依赖DevTools模块 |
@ConfigurationProperties | 需要绑定配置到Bean时 | 类型安全,符合Spring规范 | 需针对每个配置前缀编写Bean |
7.注意事项
1.安全配置:
生产环境需限制Actuator端点访问,例如:
management: endpoints: web: exposure: include: "health" security: enabled: true
2.敏感信息过滤:
避免暴露敏感配置(如密码),可通过management.endpoints.web.cors.allowed-origins或安全策略控制访问。
3.性能影响:
/configprops端点在配置复杂时可能返回大量数据,需注意性能。
8.完整示例代码
application.yml spring: application: name: config-demo datasource: url: jdbc:mysql://localhost:3306/test username: root password: root management: 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>
通过上述方法,可根据需求选择最适合的配置查看方式。如需进一步优化或解决特定问题(如安全配置、日志过滤),可提供具体场景!
到此这篇关于SpringBoot查看项目配置信息的几种常见方法的文章就介绍到这了,更多相关SpringBoot查看项目配置信息内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!