Загрузить свойства из файла с помощью @ConfigurationProperties и @PropertySource - PullRequest
0 голосов
/ 05 августа 2020

Мне нужно загрузить весь файл some.properties в Map или Properties. Файл содержит заполнители. На данный момент я нашел следующее решение:

@Configuration
@PropertySource(value = {"classpath:some.properties","${some.config}"}, ignoreResourceNotFound = true)
@ConfigurationProperties
public class Config {

    private Map<String, String> props;

    @Bean
    public Properties someProperties() {
        Properties properties = new Properties();
        properties.putAll(props);
        return properties;
    }

    //getter and setter
}

Но есть несколько неудобных моментов.

  1. все свойства в файле должны начинаться с props. *
  2. @ConfigurationProperties просматривает все файлы. Например, если application.properties будет содержать свойство, начинающееся с props. *, Это свойство будет помещено в Map. Есть ли способ использовать только файл some.properties?

Раньше я использовал PropertiesFactoryBean следующим образом:

@Bean
public Properties someProperties() {
    PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean();
    propertiesFactoryBean.setLocation("some.properties");
    propertiesFactoryBean.afterPropertiesSet();
    return propertiesFactoryBean.getObject();
} 

Это работает, но не разрешает заполнители.

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