Внедрение конфигурации микропрофиля является нулевым во время пользовательской обработки OASFilter, а microprofile-config.propetries не рассматривается как источник конфигурации.

Я нахожусь в процессе подготовки собственного генератора OpenAPI, чтобы сделать сгенерированные документы универсальными. Проблема, с которой я столкнулся, заключается в странном поведении при попытке внедрить org.eclipse.microprofile.config.Config в класс, который расширяет org.eclipse.microprofile.openapi.OASFilter. Объект Config не может быть разрешен контейнером Wildfly CI/CD, даже если его разрешение с помощью фабричного метода позволяет это сделать. введите здесь описание изображения

Однако разрешение ссылки Config по-прежнему не решает моей проблемы с возможностью чтения содержимого META-INF/microprofile-config.properties на данный момент, хотя позже, во время выполнения bean-компонента @Startup, он разрешается правильно . Любая причина, по которой поведение инъекций отличается? Я использую официальное изображение Wildfly 19.

РЕДАКТИРОВАТЬ: Основная проблема заключается в том, что содержимое microprofile-config.properties игнорируется при поиске свойств


person user4165421    schedule 09.06.2020    source источник
comment
Что вы получите, когда распечатаете все исходники? config.getConfigSources().forEach(System.out::println);   -  person srnjak    schedule 10.06.2020


Ответы (1)


В спецификации микропрофиля нет ничего об обработке аннотаций внутри фильтра.

А вот подход с ConfigProvider, как вы выяснили, работает нормально.

Я предлагаю вам получить конфигурацию прямо перед тем, как она вам понадобится, т.е.:

Config config = ConfigProvider.getConfig();
String keycloakUrl = config.getValue("OAUTH_URL", String.class);

[Спецификация Microprofile OpenAPI][1] https://download.eclipse.org/microprofile/microprofile-open-api-1.1/microprofile-openapi-spec.html#_oasfilter

person srnjak    schedule 09.06.2020
comment
Наверное, я немного сумбурно сформулировал свою проблему. Основная проблема в том, что файл META-INF/microprofile-config.properties не рассматривается как источник параметров конфига, несмотря на то, что файл готов самим Microprofile OpenAPI, ведь даже в ссылочной документации есть упоминание о настройке config в вышеупомянутом файле. - person user4165421; 10.06.2020