首页 > 解决方案 > SpringBoot 如何知道哪个@Value 正在使用默认值?

问题描述

@Value("${aaa.bbb:default}在源代码中有很多。

但是 *.properties 文件中缺少一些属性,因此使用了默认值。

如何获取属性缺失且@Value 使用默认值而不是属性文件中的值的所有字段的列表?

我想知道spring在哪里加载@Value,所以我可以在那里设置一个断点。

或者是否有任何关于此的日志警告?

标签: javaspringspring-boot

解决方案


  1. 您可以在这一行设置断点PropertyPlaceholderHelper.java#L161
  2. 通过使用 Intellij 跨项目功能搜索来获取所有注入的属性列表,@Value然后在spring-boot-actuator获取 Spring 的ConfigurableEnvironmentusing/env端点中存在的属性列表的帮助下,使用任何属性@Value但它不存在以actuator响应该属性默认值值将被使用。

推荐阅读