SpringBoot查看项目配置信息的几种常见方法

 更新时间:2025年04月23日 09:19:39   作者:爱的叹息  
这篇文章主要为大家详细介绍了查看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.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查看项目配置信息内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java 如何使用Velocity引擎生成代码

    Java 如何使用Velocity引擎生成代码

    代码生成器,可以有效减少编写重复代码,快速实现简单的业务逻辑,也能让我们的代码保持一致。那目前,我们看到的代码生成器,大部分是基于velocity引擎模板生成的,接下来我们就学习一下如何实现代码生成器。
    2021-06-06
  • springboot如何使用MybatisPlus

    springboot如何使用MybatisPlus

    MyBatisPlus是一个强大的数据库操作框架,其代码生成器可以快速生成实体类、映射文件等,本文介绍了如何导入MyBatisPlus相关依赖,创建代码生成器,并配置数据库信息以逆向生成代码,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • SpringBoot拦截器的使用小结

    SpringBoot拦截器的使用小结

    今天给大家总结一下SpringBoot下拦截器的使用,需要的朋友参考下吧
    2017-05-05
  • java 字符串词频统计实例代码

    java 字符串词频统计实例代码

    java 字符串词频统计实例代码,需要的朋友可以参考一下
    2013-03-03
  • Spring MVC数据绑定概述及原理详解

    Spring MVC数据绑定概述及原理详解

    这篇文章主要介绍了Spring MVC数据绑定概述及原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • IDEA与JDK、Maven安装配置完整步骤解析

    IDEA与JDK、Maven安装配置完整步骤解析

    这篇文章主要介绍了如何安装和配置IDE(IntelliJ IDEA),包括IDE的安装步骤、JDK的下载与配置、Maven的安装与配置,以及如何在IDE中使用Maven进行Java开发,需要的朋友可以参考下
    2025-03-03
  • Spring Security架构以及源码详析

    Spring Security架构以及源码详析

    这篇文章主要给大家介绍了关于Spring Security架构以及源码的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-06-06
  • springboot 中 druid+jpa+MYSQL数据库配置过程

    springboot 中 druid+jpa+MYSQL数据库配置过程

    这篇文章主要介绍了springboot 中 druid+jpa+MYSQL数据库配置,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • 使用Aop的方式实现自动日志记录的方式详细介绍

    使用Aop的方式实现自动日志记录的方式详细介绍

    这篇文章主要介绍了使用Aop的方式实现自动日志记录,通过监听器去监听,当访问到具体的类方法,通过aop切面去获取访问的方法,然后将日志记录下来,就这种方式给大家介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • Spring启动流程源码解析

    Spring启动流程源码解析

    这篇文章主要介绍了Spring启动流程源码解析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07

最新评论