查看当前 Spring (Boot) 属性

Posted

技术标签:

【中文标题】查看当前 Spring (Boot) 属性【英文标题】:Viewing current Spring (Boot) properties 【发布时间】:2017-08-21 14:46:08 【问题描述】:

我将 Spring Boot 应用程序作为 .jar 文件运行,该文件部分从位于 jar 内的 application.yml 获取其属性,而另一部分属性由位于 jar 外的另一个 application.yml 提供。外部的一些属性会覆盖内部的属性。为了测试属性是否被正确覆盖,我想查看当前活动的属性。这是开箱即用的吗?或者是通过属性输出逻辑扩展我的应用程序的唯一解决方案?

【问题讨论】:

【参考方案1】:

如果您将Spring Boot Actuator 添加到您的依赖项中,您可以在actuator endpoints 查看大量配置和其他信息。您可以在/configprops 端点查看属性。

【讨论】:

嗯,但是 /env 和 /configprops 不显示属性的当前值。例如 /env 响应来自 jar 内部的值。访问此端点是看不到外部覆盖参数的。 您确定,正在获取外部参数。对我来说,/env 在外部属性文件中显示属性。 @jny 不幸的是 /configprops 没有显示我的自定义属性,而只有 spring-boot 原生属性 @dhroove 不,我还没有【参考方案2】:

至少从 Spring Boot 2.0 开始,actuator/env 将按照 propertySources 的优先顺序返回所有属性的列表,即。如果在 >1 个源中重新定义了一个属性,则从顶部开始的第一次出现的读数就是处于活动状态的那个。

对于单个属性actuator/env/<property-name> 将返回有效值及其定义的来源


    "property": 
        "source": "applicationConfig: [file:../application-tom.properties]",
        "value": "DEBUG"
    ,
...


注意:我不知道这是否会反映以编程方式修改弹簧上下文时可能发生的任何变化。但那是smth。无论如何都不应该这样做。

【讨论】:

请注意,您必须启用上述执行器端点 - 默认情况下不再启用它们***.com/questions/51829253/…

以上是关于查看当前 Spring (Boot) 属性的主要内容,如果未能解决你的问题,请参考以下文章

译:从 JSON 文件加载 Spring Boot 属性

spring boot 配置属性 之 spring.profiles.include

Spring Boot初步认识

spriing boot 实战

如何通过环境变量设置名称中带有下划线的 Spring Boot 属性?

如何通过环境变量设置名称中带有下划线的 Spring Boot 属性?