获取Spring属性占位符及其解析值的列表

我想使所有属性占位符及其正在运行的Spring(Boot)应用程序的解析值可用于过程监视。第一步,可以将它们写入日志或创建类似于application.pid文件的“

resolved.properties”文件。应该考虑使用属性占位符的所有属性(隐式/显式)。

动机:通常很难在操作过程中知道已解析属性的值。系统属性或命令行参数是“可见的”,但是@Value("${timeout:30000}")很难找到代码中的隐藏默认值(如)。我希望能够回答以下问题:“正在运行的应用程序的配置看起来如何?”

以一种通用的方式,可以在我的所有spring应用程序中使用。

我知道Spring Boot Actuator /configprops端点,但这仅包括@ConfigurationProperties。我想获得使用占位符的所有属性的列表。

该要求似乎不是新的,但我想知道当今是否有适当的(可引导的)方法。

回答:

(当前)无法获取抽象中的

所有属性Environment。这是故意的,可以在此处阅读。这也是为什么无法获得用于解析的所有值的原因。

值和分辨率在运行时记录下来,告知在运行时从哪个位置解析了哪个键。但是该日志记录非常冗长,每次使用a时StringValueResolver都会记录一次。

通过提供自己的自定义项(PropertySourcesPlaceholderConfigurer可能维护已解决的键/值对的集合),可能会得到部分结果。但是,并非每个解决方案都使用PropertySourcesPlaceholderConfigurer某些解决方案,而直接使用一种StringValueResolver实现绕过PropertySourcesPlaceholderConfigurer

以上是 获取Spring属性占位符及其解析值的列表 的全部内容, 来源链接: utcz.com/qa/401067.html

回到顶部