获取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