gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 07:59:28 25 4
gpt4 key购买 nike

我想让正在运行的 Spring (Boot) 应用程序的所有属性占位符及其解析值可用于进程监视。在第一步中,这可能只是将它们写入日志或创建一个类似于 application.pid 文件的“resolved.properties”文件。应考虑使用属性占位符(隐式/显式)的所有属性。

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

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

要求似乎不是新的(参见 herehere )但我想知道现在是否有合适的(bootiful)方式。

最佳答案

(目前)没有办法获得 Environment 抽象中的所有属性。这是故意的,可以阅读 here .这也是为什么无法获取所有用于解析的值的原因。

值和解析会在运行时记录下来,告诉您在运行时从哪里解析了哪个键。但该日志记录非常冗长,每次使用 StringValueResolver 时都会记录下来。

您可能会通过提供自己的自定义 PropertySourcesPlaceholderConfigurer 获得部分结果,它维护一组已解析的键/值对。但并非每个解决方案都使用 PropertySourcesPlaceholderConfigurer,有些解决方案直接使用 StringValueResolver 实现绕过 PropertySourcesPlaceholderConfigurer

关于java - 获取 Spring 属性占位符及其解析值的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39330174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com