Middle
88
questionbank
Что произойдет, если в ApplicationContext попытаться получить один и тот же бин?
Ответ от нейросети
sobes.tech AI
ApplicationContext вернет ссылку на один и тот же экземпляр бина по умолчанию, так как областью видимости бинов по умолчанию в Spring является singleton.
В случае, если бин сконфигурирован с другой областью видимости, например prototype, то при каждом запросе ApplicationContext будет создавать и возвращать новый экземпляр бина.
Пример конфигурации бина с областью видимости prototype:
@Configuration
public class AppConfig {
@Bean
@Scope("prototype") // Указываем область видимости prototype
public MyPrototypeBean myPrototypeBean() {
return new MyPrototypeBean();
}
}
Пример получения бина из ApplicationContext:
public class Main {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
MyPrototypeBean bean1 = context.getBean(MyPrototypeBean.class);
MyPrototypeBean bean2 = context.getBean(MyPrototypeBean.class);
System.out.println(bean1 == bean2); // Для singleton вернет true, для prototype вернет false
context.close();
}
}