java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot查看项目配置信息

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

作者:爱的叹息

这篇文章主要为大家详细介绍了查看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查看项目配置信息内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文