Middle
Какво ще се случи, ако се опитате да получите същия боб в ApplicationContext?
sobes.tech AI
Отговор от 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();
}
}