Spring PropertySource, сообщенный PropertySourcePropertyResolver, недостаточно точен - PullRequest
0 голосов
/ 06 февраля 2020

Функция после миграции 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...