Используйте @ConfigurationProperties
, как предлагается в одном из ответов на вопрос, который вы связали:
@Bean(name="AppProps")
@ConfigurationProperties(prefix="app.map")
public Map<String, String> appProps() {
return new HashMap();
}
, а затем
@Autowired
@Qualifier("AppProps")
private Map<String, String> props;
будет работать с конфигом
app:
map:
Countries: 'countries.xlsx'
CurrencyRates: 'rates.xlsx'
EDIT: @Value
аннотация тоже работает, но вы должны рассматривать ее как строку в YAML:
@Value("#{${app.map}}")
private Map<String, String> props;
и
app:
map: "{Countries: 'countries.xlsx', CurrencyRates: 'rates.xlsx'}"
Обратите внимание на кавычки вокруг значения карты. Очевидно, Spring в этом случае разбирает его на строку.