Junior — Middle
Αν δύο κλάσεις έχουν πρόσβαση στην ίδια παρουσία bean, θα δημιουργηθεί μόνο μία παρουσία ή κάθε κλάση θα λάβει μια ξεχωριστή;
sobes.tech AI
Απάντηση από 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.