JAVA/Spring Boot 2.3 新特性配置文件属性跟踪

2021-05-10  本文已影响0人  JAVA炭烧

先点赞,再观看!
背景
当我们使用 spring boot 在多环境打包,配置属性在不同环境的值不同,如下:

spring:
  profiles:
    active: @project.profile@  #根据maven 动态配置profile
---
spring:
  profiles: dev
demo: lengleng_dev
---
spring:
  profiles: prd
demo: lengleng_prd

或者使用 spring cloud 配置中心 (nacos/config)等


再有就是 应用配置的同一个属性,值的来源可能来自配置文件、环境变量、启动参数等等。 很多情况由于如上配置的复杂性,应用在读取配置的时候,并不是我们预期的值,比如我们想使用是配置文件 dev 环境的值,却被环境变量的 或者其他的数据覆盖等,这些往往只有等我们运行时,输出日志才能发现错误原因。

解决方案

spring boot 2.3 Actuator 提供 /actuator/configprops 端点 (之前版本也有此端点,但是行为发生变化了 /actuator/env 保持一致 ),提供对配置文件属性跟踪功能,方便我们在 spring boot 应用中,实时的获取配置文件实际加载值。

如何使用

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
management:
  endpoints:
    web:
      exposure:
        include: 'configprops'
@Data
@Component
@ConfigurationProperties("demo")
public class DemoConfig {

    private String username;

    private String password;
}

特殊说明

public class Sanitizer {

    private static final String[] REGEX_PARTS = { "*", "$", "^", "+" };

    private static final Set<String> DEFAULT_KEYS_TO_SANITIZE = new LinkedHashSet<>(Arrays.asList("password", "secret",
            "key", "token", ".*credentials.*", "vcap_services", "sun.java.command"));
}
management:
  endpoint:
    configprops:
      keys-to-sanitize:
        - 'aaa'
        - 'bbb'

总结

写在最后的话

今天,我们介绍了Spring Boot 2.3 新特性配置文件属性跟踪

想要获得更多关于spring boot的资料,彻底吃透,可以私信我关键词[资料],获取更多java相关知识.

~联系方式~
wechat: Mlzg5201314zz
扣扣:2967728282///
上一篇下一篇

猜你喜欢

热点阅读