Встречается на собеседованиях • сегодня
Что делать при закольцованности от взаимной инъекции классов
При закольцованности из-за взаимной инъекции классов можно использовать несколько подходов:
- Lazy инициализация через
@Lazy(Spring):
java
@Service
public class A {
@Lazy @Autowired
private B b;
}
@Service
public class B {
@Autowired
private A a;
}- Setter/Field инъекция вместо конструкторной:
java
@Component
public class A {
private B b;
@Autowired
public void setB(B b) {
this.b = b;
}
}-
Интерфейсы - вынести зависимости в интерфейсы.
-
Refactoring - пересмотреть архитектуру, возможно, стоит объединить функционал или использовать паттерн Mediator.
Важно: циклические зависимости часто указывают на проблемы проектирования. Лучшее решение - пересмотреть архитектуру приложения.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы