Back to questions
Junior — Middle
62
Если два класса обращаются к одному и тому же экземпляру бина, создастся ли при этом два отдельных объекта?
Answer from AI
sobes.tech AI
Если два класса обращаются к одному и тому же экземпляру бина в контексте, например, 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), тогда при каждом запросе создаётся новый объект.