Функция после миграции Spring Framework с 4 на 5, загрузка Spring с 1 по 2, похоже, была потеряна. Цель: найти источник свойства, для которого разрешено каждое свойство.
Spring 4
Можно использовать класс PropertySourcesPropertyValues
. Класс был объявлен устаревшим и удален в Spring 5. Его можно использовать для распечатки в журналах отладки во время загрузки фактического значения каждого свойства.
PropertySourcesPropertyValues propValues = new PropertySourcesPropertyValues(propertySources, Collections.singletonList("*"), null);
for (PropertyValue prop : propValues.getPropertyValues()) {
System.out.println("Property " + prop.getName() + " -> value: " + prop.getValue());
}
Журналы позволили определить, какое значение было принято во внимание если он определен в нескольких местах.
С пружиной 5
С пружиной 5 этого нет. Однако PropertySourcesPropertyResolver
, по-видимому, регистрирует отладку в своем методе logKeyFound
источник значения каждого установленного свойства, в основном PropertySource
обеспечивающий свойство, имеющее наивысший приоритет.
Но, к сожалению, для многих свойств источник выглядит как configurationProperties
. ConfigurationPropertySourcesPropertySource
скрывает фактический источник свойства свойства (см. снимок экрана ).
Есть ли другой способ получить исходный источник для каждого набора свойств в Spring?