Достаточно получить AbstractEnvironment
из контекста приложения Spring и просмотреть его EnumerablePropertySource
источники, обнаружив все имена свойств, а затем получить значение свойства по имени из среды.
AbstractEnvironment environment = getFromContext() /*i.e. Autowired*/;
var propsStream =
environment
.getPropertySources().stream()
.flatMap(ps -> {
if (ps instanceof EnumerablePropertySource) {
return Arrays.stream(((EnumerablePropertySource<?>) ps).getPropertyNames());
} else {
return Stream.empty(); // or handle differently
}
})
.distinct()
.map(name -> Tuple.of(name, environment.getProperty(name)));
// here Tuple is a dummy class for holding (name, value)