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

Сталкивался ли с циклическими зависимостями бинов в Spring

Циклические зависимости в Spring возникают, когда два или более бина зависят друг от друга напрямую или через цепочку зависимостей. Например, бин A требует B, а B требует A. Spring обнаружит это и выбросит BeanCurrentlyInCreationException.

Как решить:

  1. Использовать @Lazy — откладывает инициализацию бина до первого использования.
java
@Service
public class A {
    private final B b;
    @Autowired
    public A(@Lazy B b) { this.b = b; }
}
  1. Изменить архитектуру — вынести общую логику в третий бин или использовать интерфейсы.

  2. Setter/Field Injection вместо конструкторного (не рекомендуется, но работает):

java
@Service
public class A {
    @Autowired
    private B b;
}

Лучшая практика — избегать циклических зависимостей, так как они усложняют поддержку кода.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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