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

Какие знаешь способы решения циклической зависимости Bean в Spring

Spring предлагает несколько способов решения циклических зависимостей:

  1. Setter/Field Injection – внедрение через сеттеры или поля (не через конструктор). Spring сначала создает бины, а потом инжектит зависимости.
java
@Service
public class A {
    @Autowired
    private B b;
}

@Service
public class B {
@Autowired
private A a;
}

text

2. **@Lazy** – откладывает инициализацию бина до первого использования, разрывая цикл.

```java
@Service
public class A {
    @Autowired
    @Lazy
    private B b;
}
  1. ApplicationContext – получение бина через контекст вручную (не рекомендуется).

  2. Рефакторинг – лучший способ. Вынести общую логику в третий компонент или использовать интерфейсы.

java
public interface CommonService {}
@Service
public class A implements CommonService {
    @Autowired
    private B b;
}
@Service
public class B {
    @Autowired
    private CommonService a;
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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