Spring Boot 2.3 新特性配置文件屬性跟蹤

當我們使用 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 應用中,實時的獲取配置文件實際加載值


org.springframework.boot
spring-boot-starter-actuator

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 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'

版權聲明:本文源自 網絡, 於,由 楠木軒 整理發佈,共 1105 字。

轉載請註明: Spring Boot 2.3 新特性配置文件屬性跟蹤 - 楠木軒