Middle
Wat gebeurt er als je probeert dezelfde bean op te halen in de ApplicationContext?
sobes.tech AI
Antwoord van AI
ApplicationContext retourneert standaard een verwijzing naar hetzelfde bean, omdat de scope van beans standaard in Spring singleton is.
In het geval dat het bean is geconfigureerd met een andere scope, bijvoorbeeld prototype, zal de ApplicationContext bij elke aanvraag een nieuwe instantie van het bean creëren en retourneren.
Voorbeeld van het configureren van een bean met scope prototype:
@Configuration
public class AppConfig {
@Bean
@Scope("prototype") // We geven de scope `prototype` aan
public MyPrototypeBean myPrototypeBean() {
return new MyPrototypeBean();
}
}
Voorbeeld van het verkrijgen van een bean uit de 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); // Voor singleton geeft het true, voor prototype false
context.close();
}
}