#automation
#автоматизация
Вопрос:
У меня есть несколько файлов свойств тестовой среды (например. Dev, QA, UAT). Каждый файл свойств имеет разные свойства (уникальные для каждого файла свойств). Интересно, как использовать класс конфигурации библиотеки aeonbits для чтения свойств в виде карты, а не для чтения каждого свойства с помощью (@Key) с именем метода, определенным в интерфейсе…
import org.aeonbits.owner.Config;
@Config.Sources({
"classpath:${env}.properties"
})
public interface Environment extends Config {
@Key("UDS")
String getUDSUrl();
/* Can I define just one method that returns a map with all the properties
from the file? */
}
Ответ №1:
Действительно, вы можете использовать расширение переменной в @Sources
аннотации.
// The variable ${env} would be expanded from the System properties
// or from the environment properties, if defined there.
@Sources("classpath:${env}.properties");
interface MyConfig extends Config { ... }
// or you can change it programmatically:
ConfigFactory.setProperty("env", "dev"); // qa / uat / prod / etc.
// then things will work just as usual:
MyConfig cfg = ConfigFactory.create(MyConfig.class);
Пожалуйста, ознакомьтесь с настройкой ConfigFactory в онлайн-документации.
Здесь другой подход.