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

Если два класса обращаются к одному и тому же экземпляру бина, то создастся ли только один экземпляр или каждый класс получит отдельный?

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

sobes.tech AI

В Spring Framework по умолчанию бины являются синглтонами в пределах контейнера. Это значит, что если два класса обращаются к одному и тому же бину, они получают ссылку на один и тот же экземпляр.

Пример:

@Component
public class MyBean {
    // какие-то поля и методы
}

@Component
public class ClassA {
    private final MyBean myBean;
    
    public ClassA(MyBean myBean) {
        this.myBean = myBean;
    }
}

@Component
public class ClassB {
    private final MyBean myBean;
    
    public ClassB(MyBean myBean) {
        this.myBean = myBean;
    }
}

В этом примере и ClassA, и ClassB получат один и тот же экземпляр MyBean.

Если требуется, чтобы каждый класс получал отдельный экземпляр, нужно изменить область видимости бина, например, на prototype.