Junior — Middle
Jei dvi klasės kreipiasi į tą pačią „bean“ egzempliorių, ar bus sukurta tik viena egzempliorius, ar kiekviena klasė gaus atskirą?
sobes.tech AI
Atsakymas iš 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.