Junior — Middle
Deux classes accédant à la même instance d'un bean créeront-elles deux objets distincts?
sobes.tech IA
Réponse de l'IA
Если два класса обращаются к одному и тому же экземпляру бина в контексте, например, Spring Framework, то создаётся один и тот же объект (один экземпляр бина), а не два отдельных. Это связано с тем, что по умолчанию бины в Spring имеют скоуп singleton, то есть один экземпляр на весь контекст приложения.
Пример:
@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), тогда при каждом запросе создаётся новый объект.