OpenLiberty MP Config Образец getProperties() с повторным вызовом
Я попробовал пример OpenLiberty MP Config (guide-microprofile-config), пока он работает. Но при более тщательном анализе я обнаружил, что метод getProperties() в файле CustomConfigSource вызывается несколько раз подряд. Такое поведение я не ожидал. В файле InventoryConfig есть переменные, которые вводятся статически и динамически (с помощью "Provider<>"). Но этот код должен вызываться только когда я вызываю службу REST. Итак, мой вопрос, что вызывает getProperties() все время? Как я могу предотвратить это. На самом деле с моей реализацией я хочу получить доступ к базе данных и выполнить запрос, и я хотел поместить логику в getProperties(), что сейчас кажется плохой идеей.
с наилучшими пожеланиями Игорь
2 ответа
В OpenLiberty предоставляемые пользователем ConfigSources являются динамическими, поэтому система регулярно их перечитывает. Интервал обновления по умолчанию можно настроить, установив системное свойство с именем microprofile.config.refresh.rate
, Значение в миллисекундах. Если вы установите его на ноль, то он вообще не будет обновляться. Для получения дополнительной информации см. Здесь (см. Раздел "Динамические значения свойств"):
Если вы хотите прокомментировать или внести свой вклад в будущие версии MicroProfile Config, присоединяйтесь к https://github.com/eclipse/microprofile-config/
Кстати, вышеописанное поведение - это деталь реализации Open Liberty. Текущая спецификация конфигурации MicroProfile не предусматривает способа работы с источниками динамической конфигурации. Предстоящий выпуск MicroProfile Config будет посвящен этой области.