Назад к вопросам
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.