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();
}
}