Sobes.tech
Назад к вопросам
Junior — Middle
67

Обеспечивается ли создание одного и того же экземпляра компонента при использовании аннотации @Autowired в разных частях класса, помеченного @Component?

Компании, где спрашивали
Hftlabs

Ответ от нейросети

sobes.tech AI

Да, при использовании аннотации @Autowired в Spring Framework для внедрения зависимостей в класс, помеченный как @Component, по умолчанию создаётся один экземпляр компонента (Singleton scope). Это означает, что в разных местах класса, куда внедряется один и тот же компонент через @Autowired, будет использоваться один и тот же экземпляр.

Например:

@Component
public class MyService {
    @Autowired
    private MyRepository repo1;

    @Autowired
    private MyRepository repo2;

    public void doSomething() {
        // repo1 и repo2 ссылаются на один и тот же экземпляр MyRepository
    }
}

Таким образом, Spring управляет жизненным циклом компонентов и обеспечивает повторное использование одного экземпляра, если не указано иное (например, с помощью аннотации @Scope).