Встречается на собеседованиях • сегодня
Как решить циклическую зависимость в Spring
Циклическая зависимость возникает, когда два бина зависят друг от друга (A → B → A). Spring предлагает несколько способов решения:
- Использование @Lazy - откладывает инициализацию одного из бинов до момента его реального использования:
java
@Service
public class ServiceA {
@Lazy
@Autowired
private ServiceB serviceB;
}- Setter/Field инъекция вместо конструкторной - Spring сначала создаст бины, а потом внедрит зависимости:
java
@Service
public class ServiceA {
@Autowired
private ServiceB serviceB;
}- @PostConstruct - инициализация зависимостей после создания бинов:
java
@Service
public class ServiceA {
private ServiceB serviceB;
@Autowired
public void setServiceB(ServiceB serviceB) {
this.serviceB = serviceB;
}
}Лучший подход - пересмотреть архитектуру и устранить циклическую зависимость через рефакторинг (например, вынести общую логику в третий компонент).

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