Я устанавливаю приложение Spring Boot, в котором определенные конфигурации читаются из моего application.yaml-файла. Я делал это несколько раз и раньше, и это хорошо работает, но мне было интересно, есть ли лучший способ получить доступ к этой конфигурации во время выполнения или я создаю возможные проблемы, не следуя некоторым рекомендациям.
Прямо сейчас класс, который извлекает конфигурацию, просто определяется как Компонент, подобный этому:
@Component
@EnableConfigurationProperties
@ConfigurationProperties("myPrefix")
public class MyExternalConfiguration{
private HashMap<String, Boolean> entries= new HashMap<String, Boolean>();
public Boolean getConfigurationForKey(String key) {
return this.entries.get(key);
}
}
А затем автоматически подключается к нескольким другим классам, которым необходим доступ к этой конфигурации, например:
@Component
public class MyClass{
@Autowired
private MyExternalConfiguration myExternalConfiguration;
public void doSomething(){
//...
Boolean someEntry = myExternalConfiguration.getConfigurationForKey(someKey);
}
}
Теперь это работает просто отлично. Просто я видел примеры, когда конфигурации, подобные этой, обрабатываются, например, как одиночка (хотя не в среде Spring-Boot). Я просто хотел бы спросить, есть ли какой-то общепринятый способ доступа к внешним конфигурациям или вы видите проблему с тем, как я обращаюсь к ней в моем проекте.
Заранее спасибо!