Я обнаружил следующую ошибку в тесте дыма в контейнере Docker, который выполняется на нашем сервере CI Linux:
Причина: org.springframework.beans.factory.BeanCurrentlyInCreationException: Ошибка созданияbean-компонент с именем 'addressServiceClient': bean-компонент с именем 'addressServiceClient' был добавлен в другие bean-компоненты [cartServiceClient] в его исходной версии как часть циклической ссылки, но в конечном итоге был упакован.Это означает, что указанные другие bean-компоненты не используют окончательную версию bean-компонента.Это часто является результатом чрезмерного совпадения типов - например, рассмотрите возможность использования 'getBeanNamesOfType' с отключенным флагом 'allowEagerInit'.
Я прочитал много ресурсов, которые говорят об этом общемпроблема, поэтому я понимаю основную проблему.
Я даже обнаружил все случаи внедрения конструктора в нашу кодовую базу и заменил их всеми обычными методами автопроводки и @PostConstruct.
Я даже понимаюпочему эта ошибка может произойти ТОЛЬКО на нашем сервере Linux CI, а не на моем ноутбуке с Windows (из-за порядка разрешения).
Что еще более странно, сборка Linux CI непотерпеть неудачу все время.Это похоже на любую другую сборку или около того.
Я предполагаю, что, хотя я, кажется, удалил все случаи внедрения в конструктор, есть еще кое-что, что заставляет меня обращаться по этой циклической ссылке.
Итак, что мне действительно нужно, так это стратегия НАЙТИ эту циркулярную ссылку.Наше приложение Spring Boot, и у нас нет XML-контекстов, все это @Bean config.
Что я могу сделать, чтобы точно определить, что такое граф ссылок, чтобы я мог реорганизовать его, чтобы удалить эту циклическую ссылку