Классы конфигурации не улучшаются, если слишком много bean-компонентов - PullRequest
0 голосов
/ 04 января 2019

Я разрабатываю систему для работы под WildFly-10, которая состоит из ряда различных компонентов, которые можно включить или отключить с помощью свойства конфигурации с помощью аннотаций @Conditional. Проблема, которую я обнаружил, заключается в том, что если слишком много классов @Configuration отключено @Conditional, то остальные классы @Configuration не улучшаются во время вызова ConfigurationClassPostProcessor.processConfigBeanDefinitions(). Я использую Spring версии 4.3.10.RELEASE, чтобы соответствовать тому, что используется WildFLy-10.0.Final.

Например, в одной настройке во время вызова processConfigBeanDefinitions(), beanDefinitionMap содержит 62 элемента. После вызова this.reader.loadBeanDefinitions(), beanDefinitionMap содержит 61 элемент. Это приводит к сбою теста registry.getBeanDefinitionCount() > candidateNames.length, поэтому вновь созданные классы @Configuration не улучшаются. Это приводит к дальнейшему NullPointerException при попытке создания транзакцииAdvisor для класса конфигурации, помеченного @EnableTransactionManagement, поскольку эта аннотация не была обработана.

Мой обходной путь - создание большего количества bean-компонентов внутри @Configuration классов, которые всегда загружаются, но это не лучшее решение, если мне придется прибегнуть к созданию фиктивных bean-компонентов. Есть ли другой способ решить эту проблему? Это было исправлено в более поздних версиях Spring?

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