TGViewer
Java Portal | Программирование Java Portal | Программирование @java_iibrary · 11.6K subscribers
Post #1285 2.77K
Что такое циклическая зависимость и как её следует решать?

Когда beanA зависит от beanB, а beanB зависит от beanA, возникает циклическая зависимость. В этом случае оба бина пытаются внедрить друг друга через конструктор, и Spring выбрасывает исключение BeanCurrentlyInCreationException

Циклическая зависимость может возникать и между более чем двумя бинами, например: 👇

beanA => beanB => beanC => beanD => beanA

Spring создаёт бины в том порядке, в котором они требуются. Если бин имеет зависимость, то сначала создаётся зависимость, а затем она внедряется для завершения создания бина.

В случае циклической зависимости Spring не может определить, какой бин создать первым.

Проблема циклической зависимости возникает при использовании конструкторной инъекции, так как бины создаются при загрузке контекста. При использовании setter-инъекции или инъекции в поле бины создаются, но их зависимости внедряются только по мере необходимости.

Таким образом, можно избежать проблемы циклической зависимости. ☺️

При использовании конструкторной инъекции можно применить аннотацию @Lazy. Это сообщает Spring, что при инициализации бина нужно внедрить прокси. Сам бин будет полностью создан только тогда, когда он действительно понадобится.

👉 Java Portal
  • 👍 8
  • 🔥 2
  • ❤ 1
More from @java_iibrary
  1. Oct 3, 2026😂 👉 Java Portal
  2. Oct 3, 2026💡 Предпочитайте делегирование наследованию: отношение «является» тесно связывает ваш клас…
  3. Oct 2, 2026🚀 Spring Boot 4: переименовано свойство преобразования исключений ✅ Было: spring.dao.exce…
  4. Oct 2, 2026Процесс ≠ Поток ≠ Виртуальный поток. Эти понятия часто путают, хотя они решают разные зада…
  5. Oct 1, 2026Когда Java-стектрейс оказался длиннее контекста ИИ 👀 👉 Java Portal
  6. Oct 1, 2026Spring Boot 4: приближение срока истечения SSL-сертификатов больше не меняет статус health…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →