查看当前的Spring(Boot)属性

Ewg*_*ski 8 properties-file spring-boot

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

jny*_*jny 8

如果将Spring Boot Actuator添加到依赖项中,则可以在执行器端点查看大量配置和其他信息.您可以在/configprops端点查看属性.


elo*_*rin 5

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

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

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

Run Code Online (Sandbox Code Playgroud)

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