Встречается на собеседованиях • сегодня

Разбирался ли с циклическими зависимостями

Циклические зависимости возникают, когда два или более класса зависят друг от друга напрямую или через цепочку зависимостей. В Java это может привести к проблемам при компиляции, загрузке классов или создании объектов (например, StackOverflowError).

Пример циклической зависимости:

java
class A {
    private B b;
    public A(B b) { this.b = b; }
}

class B {
    private A a;
    public B(A a) { this.a = a; }
}

Способы решения:

  1. Использовать Dependency Injection (например, через Spring)
  2. Применять интерфейсы вместо конкретных классов
  3. Ленивую инициализацию (через @Lazy в Spring)
  4. Рефакторинг - вынести общую логику в третий класс

В Spring циклические зависимости можно разрешить через:

  • Конструкторную инъекцию с @Lazy
  • Сеттерную инъекцию вместо конструкторной
  • Использование @PostConstruct
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы