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

Какое знаешь верное решение при инъекции бина А в бин В, а бина В в бин А

Это циклическая зависимость, которую Spring не разрешает по умолчанию. Решения:

  1. Использовать @Lazy – один из бинов инициализируется лениво, разрывая цикл:
java
@Service
public class A {
    @Autowired
    @Lazy
    private B b;
}
  1. Setter/Field инъекция вместо конструкторной:
java
@Service
public class A {
    private B b;

    @Autowired
    public void setB(B b) {
        this.b = b;
    }
}
  1. Использовать интерфейсы – вынести зависимости в интерфейсы и внедрять их.

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

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

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

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

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